接口不是类,定义接口的关键字interface
如果一个类想要实现接口中定义的规则,需要使用implments与接口建立实现关系
注意:如果有任何一个抽象方法没有实现,那么这个类就是一个抽象子类
Java8中接口里的所有方法都是抽象方法
接口中只有静态常量,没有普通变量,会自动拼接public static final
接口中的方法也可以简写,会自动拼接public abstract
接口不可以实例化
接口中也没有构造方法,实现类调用的是它自己父类的构造方法,如果没有明确指定父类,那就是Object的
接口更多的是规则的制定者,不做具体的实现
接口降低了程序的耦合性,更加方便项目的维护与拓展
接口是先天设计的结果,这样可以省去后续的多次重构,节省资源
3.6 接口与类的复杂关系
类与类的关系
Java的类只支持单继承,类与类就是继承关系,并且一个子类只能有一个父类
class Son extends Father{ }
接口与接口的关系
Java的接口是不做限制的,可以多继承
interface Inter1 extends Inter2{ } – Inter1是子接口 Inter2 是父接口
interface Inter1 extends Inter2,Inter3{ } – Inter1 是子接口 Inter2 和 Inter3 都是父接口
注意:如果是情况2的话,接口1的实现类需要实现这三个接口(Inter1,2,3)的所有抽象方法
接口与类的关系
Java中的类对于接口而言是多实现的,所以一个类可以实现多个接口
class InterImpl implements Inter1{}
class InterImpl implements Inter1,Inter2{}