家人们谁懂啊!Java 里的接口简直是新手的 “重灾区”,每次写代码碰到interface,都像在看一份看不懂的合同,生怕一不小心就违约报错。今天咱们就用唠嗑的方式,把接口扒得明明白白,看完保证你再也不被它搞心态!


一、接口到底是个啥?Java 里的 “万能合同”

接口,说白了就是一份大家都要遵守的合同 / 标准

  • 举个栗子:就像手机充电线的接口,Type-C 就是一份 “合同”,所有手机厂商、充电宝厂商都得按这个标准来做,不然就插不上。
  • 放在 Java 里,接口就是定义了一套 “规矩”:比如我定义一个 “会飞” 的接口,里面有个fly()方法,不管是鸟、飞机还是超人,只要实现了这个接口,就必须遵守 “会飞” 的规矩,实现fly()方法。

1. 接口的语法:用interface定义的 “合同模板”

接口的语法很简单,就用interface关键字:

java运行

interface MyInter {
    // 接口里的属性,默认是public static final的常量
    int n = 3; 
    // 接口里的方法,默认是public abstract的抽象方法
    void m1();
    int m2();
}
  • 编译后,接口也会生成独立的.class文件,看着和普通类差不多,但它不能创建对象,只能声明引用(就像合同本身不能干活,得找个 “实现类” 来执行)。
  • 接口里的属性,默认都是public static final的常量!也就是说,你写int n = 3;,编译器会自动给你加上public static final,变成public static final int n = 3;,赋值之后就再也改不了,是个常量。
  • 接口里的方法,默认都是public abstract的抽象方法!你写void m1();,编译器会自动加上public abstract,变成public abstract void m1();,没有方法体,只有声明。
  • 接口里没有构造方法!它不是类,不能 new 对象,自然也不需要构造方法。

二、实现类:接口的 “打工人”,必须遵守合同

接口只是一份 “合同”,本身不能干活,得找个 “打工人” 来实现它,这个 “打工人” 就是实现类

1. 实现接口的语法:用implements接下这份合同

实现类要实现接口,用implements关键字:

java运行

class MyClass implements MyInter {
    // 必须实现接口里所有的抽象方法,而且访问权限必须是public
    public void m1() {
        System.out.println("m1的方法...");
    }
    public int m2() {
        System.out.println("m2的方法...");
        return 0;
    }
}
  • 划重点!如果实现类不想变成抽象类,就必须实现接口里所有的抽象方法,一个都不能少!不然编译器会直接给你红波浪线,说你 “违约了”。
  • 实现接口方法时,访问权限必须是public!因为接口里的方法默认是public abstract的,子类实现的时候不能缩小访问权限,就像合同里写了 “所有人都能调用的方法”,你不能改成 “只有我自己能调用”。

2. 接口的核心用法:强制多态!

接口的灵魂就是多态!咱们可以用接口类型的引用,指向实现类的对象,就像这样:

java运行

public class TestInter2 {
    public static void main(String[] args) {
        // 接口类型的引用,指向实现类的对象,这就是多态
        MyInter mi = new MyClass(); 
        mi.m1(); // 调用实现类里的m1方法
        int n = mi.m2(); // 调用实现类里的m2方法
        System.out.println(n);
    }
}
  • 你看,miMyInter类型的引用,但它指向的是MyClass的对象,调用方法的时候,会自动执行MyClass里实现的方法,这就是多态的魅力!

今天先唠到这,接口的基础概念和实现方式你 get 到了吗?下一篇咱们继续扒接口的继承、多实现和实际应用,保证让你彻底拿捏这个 Java 里的 “万能合同”!

更多推荐