在知乎上看见个关于接口的见解,颇有道理。

首先java中不存在实际的多重继承!!!java

 不谨慎的使用多重继承会致使‘共同祖先’问题,好比class B 和class C均继承class A, 那么若是class D 同时继承class B 和class C,那么继承与A中的共有成员就会有两份,那么D中的成员id归属问题就不明确了。.net

 java中的interface 不能够被实例化,必须被使用其它的类implement,但这不是继承。interface 的主要目的不是为了实现多重继承,而是为了规定一系列必须被Implement的方法,在C++中也就是@张启超 说的纯虚类。继承

 在非要使用多重继承pattern的状况下,能够经过interface模拟多重继承。而且因为interface自己没有数据成员,因此不会出现id的混淆问题。 get


做者:kim vic 连接:https://www.zhihu.com/question/20785872/answer/16209494 来源:知乎 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。io

相关文章
相关标签/搜索