内容:Java黑马就业班 P171-184
接口使用步骤
1.接口不能直接使用,必须有一个实现类来实现该接口
格式:public class 实现类名称 implements 接口名称
2.接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。
实现:去掉 abstract关键字,加上方法体大括号。
3.创建实现类的对象,进行使用。
注意事项:
1.接口是没有静态代码块或者构造方法的
2.一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
格式:public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB
需要覆盖重写所有抽象方法
3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
4.如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类
5.如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。
6.一个类如果直接父类当中的方法,和接囗当中的默认方法产生了冲突,优先用父类当中的方法
在Java9+版本中,接口的内容可以有:
1.成员变量其实是常量
格式:【public】【static】【fina1】数据类型常量名称=数据值;
注意:
- 常量必须进行赋值,而且一旦赋值不能改变。
- 常量名称完全大写,用下划线进行分隔。
2.接口中最重要的就是抽象方法
格式:【public】【abstract】返回值类型方法名称(参数列表);
注意: 实现类必须爱盖重写接口所有的抽象方法,除非实现类是抽象类。带有抽象方法的类一定是抽象类。
3.从Java8开始,接口里允许定义默认方法
格式:【public】default 返回值类型 方法名称(参数列表){方法体}
备注:接口当中的默认方法,可以解决接口升级的问题。
注意: 默认方法也可以被覆盖重写
4.从Java8开始,接口里允许定义静态方法
格式:【public】static 返回值 类型方法名称(参数列表){方法体}
注意: 应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法。
5.从Java9开始,接口里允许定义私有方法
格式:
- 普通私有方法:private 返回值类型 方法名称(参数列表){方法体}
- 静态私有方法:private static 返回值类型 方法名称(参数列表){方法体}
备注:为什么会有静态私有方法?因为接口里的静态方法只能访问自己的静态方法!
附上个区分调用和访问,静态和非静态之间调用问题的链接:为什么静态方法中不可以直接访问非静态方法
注意: private的方法只有接口自己才能调用,不能被实现类或别人使用。