1.接口的继承

接口继承使用extends关键字:

一个类实现“子接口”:该实现类,需要既实现“子接口”中的方法,又要实现“父接口”中的方法。


Java中的类是单继承的,即一个子类最多只能有一个父类。那么接口呐?

Java中,接口是可以继承多个接口的

自然,如果一个类实现了接口ISon,那么该来需要实现接口,ISon,IFather,IFather2中的方法。


Java的接口多继承时:如果IFather和IFaher2两个父接口中同时存在同名的默认方法,connection():

如果“子接口”不做任何处理,则会报错:

此时解决方案:“子接口”中自己写一个同名的默认方法


2.接口中默认方法的重写和覆盖

(20200914加:接上)经过实测发现:经过处理后,一个实现了ISon接口的类,该类没有重写connection()方法,也不会报错,因为接口ISon已经处理了可能产生的冲突。

然后,如果实现类没有重写connection方法,

其:无论是谁的引用,只要是指向的实现类对象,均会调用ISon(即“子接口”)中的connection方法。(即子接口覆盖掉了两个父接口的connection方法,并将该方法传递给了实现类,)

如果,实现类中重写了connection方法:则又全都调用实现类中的connection方法了(实现类不接受其接口给予的“宽容”,依旧重写了默认方法)

通过以上两个实例可以发现:接口中的默认方法,本身这个东西的目的是“对接口实现类的宽容”,本身是更倾向于不需要实现类重写的。。。可一旦实现类(或“子接口”)重写了该默认方法,那么就会对其(上层)接口中的默认方法形成一种全面覆盖。

能多少感受到默认方法的性质吧。(其实和一般的父类子类没有太大区别。如,父类引用指向之类对象,可以调用父类中的方法和子类重写父类的方法。这儿子类重写的父类的方法,和这儿是相通的。因为“子类对像”和“实现类对象”是相通的

阅读全文
AI总结
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐