接口(基于jdk1.9)
定义:
一种公共的标准规范
接口中可以包含的属性和方法
常量:public static final 数据类型 常量名称 = 数据值;
注意:
- 常量在定义时必须进行赋值,而且一旦赋值就不能被改变
- 常量名称完全大写,多个单词时用下划线分隔
方法:
抽象方法 : public abstract 返回值类型 方法名称(参数列表);注意:
- 实现类必须覆盖接口中的所有的抽象方法,除非实现类是一个抽象类
默认方法:public default 返回值类型 方法名称(参数列表){
方法体
}注意:
- 默认方法既可以被实现类继承也可以被实现类覆盖
静态方法:public static 返回值类型 方法名称(参数列表){
方法体
}注意:
- 只能通过接口名称进行调用,实现类名称和实现类对象都不能调用
私有方法:分为一般私有方法 && 静态私有方法
一般私有方法:private 返回值类型 方法名称(参数列表){
方法体
}
}
静态私有方法:private static 返回值类型 方法名称(参数列表){
方法体
}注意:
- 私有方法只能被接口内部访问,不能被实现类和其它类访问
注意:
- jdk1.7接口中只能包含常量和抽象方法
- jdk1.8在1.7的基础上增加了默认方法和静态方法
- jdk1.9 在1.8的基础上增加了私有的一般方法和私有的静态方法
接口注意事项
- 接口中不允许存在【构造函数】、【静态代码块】、【构造代码块】但允许存在局部代码块
- 如果实现类所实现的多个接口当中存在【重复的抽象方法】实现类只需要覆盖一次即可
- 如果实现类所实现的多个接口当中存在【重复的default方法】实现类必须要对重复的方法进行覆盖
- 如果实现类所实现的多个接口当中存在【重复的静态方法】实现类不需要进行任何操作,因为接口中的静态方法只能被接口名调用与实现类无关
- 实现类的直接父类与实现的接口中的default方法重名时,优先访问父类中的方法
类与接口的关系
- 类与类之间是继承关系
注意:java类与类之间只支持【单继承】,并且类只能有一个直接父类
- 类与接口之间是实现关系,
注意:一个类可以实现多个接口
- 接口与接口之间是继承关系
注意:接口与接口之间支持多继承
多个父接口中的default方法重复时,子接口必须覆盖该方法【且要带着default关键字】
文章若有不足之处,请大家在下方留言看到后会进行更新,谢谢大家了!