接口中的默认方法
接口的定义:
接口的作用是定义该类型的实例要具有的功能,也就是必须执行哪些工作,并且不需要关心这些工作的具体进行
接口的定义方法没有方法体,并且接口不允许定义实例变量,。如果一个类实现了这个接口,那么必须重写接口所有方法
类与接口的区别:
1.类中可以定义成员变量,但是接口中不允许存在成员变量
2.接口中所有的方法都没有具体实现(在Java8以前定义是正确的,但是Java8以后增加了接口的默认实现方法)
直接执行上述代码得到结果如下
接口中的静态方法
接口中的默认方法
如果有两个接口静态方法一模一样,并且一个实现类同时实现了这两个接口,此时不会报错,因为JDK8只能通过接口类调用接口中的静态方法,
这对编译器来说是可以区分的。但是如果两个接口中定义了一模一样的默认方法的时候,并且一个实现类同时实现了这两个接口,那么必须在实
现类中重写默认方法,否则编译器报错。
执行TestInterface.java之后的结果如下:
接口中的静态方法
接口实现类覆盖了接口中的default
java中接口的默认方法:
默认方法允许接口方法定义默认实现,子类方法不必须实现此方法而就可以拥有该方法的实现。
默认方法的优势:
默认方法主要的优势是提供了一种扩展接口的方法,而不破坏现有代码。
默认方法另外一个优势方法是可选的,子类可以根据不同的需求去重写默认实现。
接口中静态方法:
java8中为接口新增的一项功能:定义一个或者多个静态方法。在调用静态方法是,不需要实现接口,也不需要接口的实例,也即是说调
用类的静态方法的方式
语法:接口名.静态方法名