在此之前可以先看一下这个大佬写的文章,里面关于Java 8接口中的静态方法和默认方法的新特性解释的蛮好的
https://blog.csdn.net/aitangyong/article/details/54134385
在这里补充几点其他需要注意的,也可能是你一直疑惑的(我之前就困惑了好久)~
- 接口中的静态方法其实是不可以直接被子类对象直接调用,不仅接口中的静态方法,其他的抽象类,普通类的static方法都不可以被子类对象直接调用,原因是因为一个类可以实现多个接口,如果2个接口具有相同的静态方法,它们都将被继承,编译器就不知道要调用哪个接口了,这也是为了防止被static修饰的成员方法和成员变量都属于这个类的,不属于这个类的任何一个实例。另外子类继承不到也实现不了父类或接口的静态方法,子类写一个跟父类一样的静态方法(或子接口写一个父接口一样的静态方法)都不属于方法重写,而是属于子类本身的方法。
- 如果实现了多个接口,然后接口中都有相同的default默认的方法,这个时候是必须选择实现其中一个接口的default方法,不然会出现下面的编译错误,如图:
最后
以上就是儒雅小伙最近收集整理的关于Java8新特性,接口中的静态方法和默认方法详解的全部内容,更多相关Java8新特性,接口中内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复