默认方法

默认方法是JDK8新特性,指的是接口也可以提供具体方法了,而不像以前,只能提供抽象方法

A 这个接口,增加了一个默认方法 b,这个方法有实现体,并且被声明为了default


public interface A {
    public void a();
 
    default public void b() {
        System.out.println("默认方法");
    }
}


假设没有默认方法这种机制,那么如果要为A增加一个新的方法b,那么所有实现了A接口的类,都需要做改动。


但是引入了默认方法后,原来的类,不需要做任何改动,并且还能得到这个默认方法


通过这种手段,就能够很好的扩展新的类,并且做到不影响原来的类


练习

为A接口增加一个默认方法 f()
为B接口也增加一个默认方法f() 
问: AB同时实现了A,B接口,那么AB 对象调用f()的时候,是调用哪个接口的f()?


答:

作为同时继承了A和B中的 默认方法f,就必须在实现类中重写该方法
从而免去到底调用哪个接口的f方法这个模棱两可的问题


public class AB implements A,B{
 
    //作为同时继承了A和B中的 默认方法f,就必须在实现类中重写该方法
    //从而免去到底调用哪个接口的f方法这个模棱两可的问题
    @Override
    public void f() {
        //
        System.out.println("这个AB自己的f方法");
    }
 
}


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值