Java:接口

接口内容演变过程:

Java 7 接口包含:常量、抽象方法
Java 8 接口新增:默认方法、静态方法
Java 9 接口新增:私有方法

1.常量

格式:
[public] [static] [final] 数据类型 常量名 = 数值;
注意:
(1)常量名全为大写,用下划线连接
(2)定义常量是必须赋值,并且一旦赋值就不能改变

2.抽象方法

格式:
[public] [abstruct] 返回值类型 方法名称(参数列表);
注意:
(1)实现类必须覆盖重写接口中所有的抽象方法,除非实现类是抽象类

3.默认方法

格式:
[public] default 返回值类型 方法名称(参数列表){
    方法体;
}
注意:
(1)默认方法也可以被覆盖重写

4.静态方法

格式:
[public] static 返回值类型 方法名称(参数列表){
    方法体;
}
注意:
(1)需要通过接口名称进行调用,不能使用实现类的对象进行方法调用

5.私有方法

格式:
—普通私有方法—
private 返回值类型 方法名称(参数列表){
    方法体;
}
—静态私有方法—
private static 返回值类型 方法名称(参数列表){
    方法体;
}
注意:
(1)私有方法仅供本类调用

使用接口时需要注意的地方:


(1)接口是没有静态代码块或者构造方法的

解释:接口不能使用New的方式来生成对象,所以它不存在构造方法

(2)一个类的直接父类是唯一的,但是一个类可以同时实现多个接口

解释:为什么一个类的直接父类是唯一的?因为如果有多个直接父类,假设两个直接父类中有相同方法,那么在使用super调用时,到底该调用哪一个?因为存在这样的问题,所以在Java中类的直接父类是唯一的。

一个类可以同时实现多个接口,实现接口的前提是必须将接口中的所有抽象方法覆盖重写,并且若多个接口中存在重复的方法也有解决方案,所以一个类实现多个接口是没有问题的。

(3)如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可

解释:你爸爸(接口A)让你吃饭,你妈妈(接口B)也让你吃饭,你只需要乖乖听话覆盖重写谁的都可以,不过只需要覆盖重写一次就好,因为目的达到了

(4)如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类

解释:是呗…

(5)如果实现类所实现的多个接口中存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写

解释:这是解决方法

(6)一个类如果直接父类当中的方法和接口当中的默认方法产生了冲突,优先用父类当中的方法

解释:底层代码


收集到了一篇不错的文章关于抽象类,接口

https://blog.csdn.net/fanguoddd/article/details/87980422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值