JDK8 interface 改动

JDK8 interface 改动

1、interface中可以定义static方法;

2、interfac中的static方法必须有方法实现体,该方法只属于该接口,接口名直接调用该方法。不属于子类或子接口,子类或实现对象都无法继承、重写、调用该方法;

3、接口中新增default关键字修饰的方法,default方法只能定义在接口中,可以再子类或子接口中被重写;

4、接口中default定义的方法必须有方法体;

5、default方法可以被子接口或子类 继承、重写、被子类对象调用。不能像static方法一样,被接口名直接调用;

6、父接口的default方法如果在子接口或子类被重写,那么子接口实现对象、子类对象,调用该方法,以重写为准;

7、本类、接口如果没有重写父类的default方法,则在调用default方法时,使用父类定义的default方法逻辑;

8、子类、子接口如果实现或继承多个接口父接口中有同样的default方法,则子类、子接口必须重写该default接口,并以自己的重写方法为准;

15253776-56e514822d384190.png

在接口中,增加default方法, 是为了既有的成千上万的Java类库的类增加新的功能, 且不必对这些类重新进行设计。 比如, 只需在Collection接口中

增加default Streamstream(), 相应的Set和List接口以及它们的子类都包含此的方法, 不必为每个子类都重新copy这个方法。

https://www.cnblogs.com/zhenghengbin/p/9398682.html

猜你喜欢

转载自blog.csdn.net/weixin_33701564/article/details/87411089