默认方法

来源:互联网 发布:恶魔猎手 名字 知乎 编辑:程序博客网 时间:2024/06/06 04:18
默认方法是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方法");    } }


原创粉丝点击