一.接口是一种规则,是对行为的抽象;
1.接口的定义:
(1).接口用关键字interface来定义;public interface 接口名{}
(2).接口不能实例化
(3).接口和类之间是实现关系,通过implements关键字表示
(4).接口的子类(实现类):要么重写接口中所有抽象方法
要么子类是抽象类
注意1.接口和类的实现关系,可以单实现,也可以多实现:
public class类名 implements 接口名1,接口名2{}
注意2.实现类还可以在继承一个类的同时实现多个接口:
public class 类名 extends 父名implements 接口名1,接口名2{}
二.成员变量
只能是常量,默认修饰符:public static final
构造方法: 没有
成员方法
只能是抽象方法,默认修饰符:public abstract
三.类与类的关系
继承关系,只能单继承,不能多继承,但是可以多层继承
接口与类的关系
实现关系,可以单实现,也可以多实现,还可以再看i成一个类的同时实现多个接口
接口与接口的关系
继承关系,可以单继承,也可以多继承
注意:接口与接口之间有重名的方法是,重写一次就好了
细节:如果实现类实现了最下面的子接口,那么需要重写所有的抽象方法
JDK8开始接口中新增的方法:
1.允许在接口中定义默认方法,需要关键字default修饰
(1).作用:解决接口升级的问题
(2).接口中默认方法的定义格式:
格式:public default 返回值类型 方法名(参数列表){}
例如:public dafault void show(){}
(3).注意事项:
(1).默认方法不是抽象方法,所以不强制重写,但如果是被重写,重写的时候去掉default关键字
(2).public可以省略,default不能省略
(3).如果实现了多个接口,多个接口中存在相同名字的默认方阿飞,子类就必须对该方法进行重写
2.允许在接口中定义静态方法,需要用static修饰
(1).定义格式:public static 返回值类型 方法名(参数类型){}
例如:public static void show(){}
(2).注意事项:
静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
public可以省略,static不能省略
3.可以定义私有方法
当一个方法的参数是接口时,可以穿递接口所有实现类的对象,这种方法称之为接口多态
适配器设计模型:解决接口与接口实现类之间的矛盾问题
书写步骤:编写中间类XXXAdapter,实现对应的接口