1、java與C++的不同點在於多繼承。
Java:不能多繼承,只能單繼承,但可以實現多個接口
C++:可以實現多繼承。
例如: class A extends B implements C,D,E {}
2、如若寫成 interface A extends B,C,D 可以編譯通過,這樣是不是違背了JAVA的單繼承特性呢?
(1)接口可以繼承多個接口是因為接口里面的定義的方法都是未實現的,不會增加復雜性。
(2)接口不是類,而是對類的一組需求的描述。接口絕不能含有實例域,也不能在接口中實現方法。接口可以實現多繼承不會增加代碼的復雜性。
(3)多繼承是發生在執行期間的,而不是在編譯期間,所以可以編譯通過,並且不違背Java是單繼承的。
3、為什么接口可以繼承多個接口?
因為接口定義的都是抽象的方法,而且不能在接口中實現方法。所以,接口繼承多個接口,並不會使接口的結構變得很復雜。相反,這樣做,還能給一個團隊在開發的過程中,提供很多便利。
單繼承指的是class,而不是interface. interface是可以多繼承的。
4、為什么JAVA改成只能單繼承?
因為在C++中一個類是可以繼承自多個類,但這樣的機制會使類的結構變的很復雜,所以JAVA將C++這一機制通過接口得以改善。
JAVA中不允許類多重繼承,只能單一繼承,但有些情況單一繼承並不能表達出現實世界中的某些邏輯關系,所以就提出了通過接口來實現多重繼承。
