day12面向对象进阶12.8

JDK8开始接口新增方法

JDK8版本开始后,Java只对接口的成员方法进行了新增

原因如下

 项目Version2.0需要对Inter接口丰富,加入10个新的抽象方法,此时改了接口就要所有实现类实现这些方法。

如何能在丰富接口功能的同时又不对子类代码进行更改呢?

允许接口中直接定义带有方法体的方法

第一种:默认方法

  • 类似之前写的普通实例方法:必须用default修饰
  • 默认会public修饰。需要用接口的实现类的对象来调用

default void run(){

        System.out.println("--开始跑--");

}

 第二种:静态方法

  • 默认会public修饰,必须static修饰。
  • 注意:接口的静态方法必须用本身的接口名来调用。

static void inAddr(){

        System.out.println("我们都在黑马培训中心快乐的学习Java!");

}

第三种:私有方法 

  • 就是私有的实例方法:必须使用private修饰,从JDK1.9才开始有的。
  • 只能在类中被其他的默认方法或者私有方法访问。

private void go(){

        System.out.println("--准备--");

}

 总结

1、JDK8开始后新增了那些方法?

  • 默认方法:default修饰,实现类对象调用。
  • 静态方法:static修饰,必须用当前接名调用
  • 私有方法:private修饰,jdk9开始才有的,只能在接口内部被调用。

JDK8新增的3种方法我们自己在开发中很少使用,通常是Java源码涉及到。现阶段需要理解、识别语法,明白调用关系即可。

使用接口的注意事项:

1、接口不能创建对象

2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。

3、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。

4、一个类实现了多个接口,多个接口中存在同名的默认方法,不冲突,这个类重写该方法即可。

5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。
 

 总结:定义接口,实现功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值