對Java不能多繼承,只能單繼承,卻可以實現多個接口的理解


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中不允許類多重繼承,只能單一繼承,但有些情況單一繼承並不能表達出現實世界中的某些邏輯關系,所以就提出了通過接口來實現多重繼承。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM