JAVA只能单继承的原因:若是多继承,当多个父类有同名函数时,调用不知道该调用哪一个,会发生错误。
同时单继承有助于简化代码的复杂程度。
JAVA多实现的原因:接口就是用来扩展功能的,一个类要扩展的功能是多种多样的,当然要多继承。
但多继承时,多个实现的接口里是不允许出现同名函数的,就避免了多继承会出现的问题。
那是否可以多继承但想接口一样不允许同名函数呢? 这样也不好,你无法保证写每个父类的时候函数名都不相同,若有相同功能的函数的名称是很容易相同的。会造成代码混乱的。而且代码的复杂度会大大增加,这样不好。
那不同接口的函数名就不会相同吗? 当然不是,因为接口是用来扩展功能的,不同功能的实现起得函数名往往是不同的,但也会有同名函数的产生,但在被类实现的时候若出现了同名情况是比较易修改的,而且接口都是抽象的没有函数主体。这样代码方面就会简化很多了。
还有接口的多继承我的理解是 类单继承后,扩展的功能可以靠对接口的多实现来完成,但接口若是单继承了,那其他的功能就被限制了,不利于功能的实现。
我的这种理解方式OK吗 ? 你们是怎么理解的?
|