接口
1、接口的概念
接口是一种标准。注意关注行为标准(即方法)。
面向对象的开发原则中有一条:面向接口编程。
2、接口的声明格式
【修饰符】 interface 接口名{
接口的成员列表;
}
3、类实现接口的格式
【修饰符】 class 实现类 implements 多个父接口{
}
【修饰符】 class 实现类 extends 父类 implements 多个父接口{
}
4、接口继承接口的格式
【修饰符】 interface 接口名 extends 多个父接口{ //类不能多继承,接口可以
接口的成员列表;
}
5、接口的特点
(1)接口不能直接实例化,即不能直接创建对象
(2)只能创建接口的实现类对象,接口与它的实现类对象之间可以构成多态引用。
(3)实现类在实现接口时,必须重写所有抽象的方法,否则这个实现类必须是抽象类。
(4)Java规定类与类之间只能是单继承,但是Java的类与接口之间是多实现的关系,即一个类可以同时实现多个接口
(5)Java支持接口与接口之间的多继承。
6、接口的成员
JDK1.8之前:
(1)全局的静态的常量:public static final,修饰符可省略
(2)公共的抽象方法:public abstract,修饰符也可省略
JDK1.8之后:
(3)公共的静态的方法:public static ,不能省略
(4)公共的默认的方法:public default,不能省略
7、默认方法冲突问题
(1) 当一个实现类同时实现了两个或多个接口,这多个接口的默认方法名相同。
解决方案:
一:选择保留其中一个
接口名.super.方法名(【实参列表】);
二:完全重写
(2)当一个实现类同时继承父类,又实现接口,父类中有一个方法与接口的默认方法名相同
解决方案:
方案一:默认方案,保留父类的
方案二:选择保留接口的
接口名.super.方法名(【实参列表】);
方案三:完全重写