JAVA-初步認識-第八章-繼承-單繼承和多重繼承


一.

說完了繼承的基本概述之后,了解一下在java中它的體現方式。

大家都知道java來自於c++,c++有多繼承,java對其中的多繼承進行了改良。為什么不直接支持多繼承呢?要牢記,這個原因在后面可以解決很多問題。

二.

觀看下面的截圖,截圖表現的是多繼承關系,就是說C同時具備A和B里面的東西。

相較於多繼承帶來的好處,java更注重多繼承帶來的問題,因此把多繼承改良掉了。

現在來解釋為什么不直接支持多繼承。

以上面截圖中的例子來講解,為什么不支持多繼承。C是上面A和B的子類,也就具備A和B中的方法,也就是通過匿名對象,調用A和B中的方法。子類拿到了父類中的兩個方法,但是調用show()的時候,不知道調用哪一個show(),這就是不確定。

兩個類中有相同的方法時(這里的相同說的是函數聲明相同),不知道運行哪一個。這就是java不直接支持多繼承的原因,因為多個父類中有相同成員,會產生調用的不確定性。

三.

截圖所描述的就是多繼承。依我目前的認識來看,從A到D,A中所包含的共性成員是最多的,然后逐層遞減,但是設置這么多層的繼承,是否有這個必要?還是說在實際應用中,對層數有所要求?
上面的截圖稱之為繼承體系,父類是在不斷地向上抽取過程中產生的。

A是怎么來的?分析一下,不斷向上抽取出來的,A里面定義的,是這個體系里面,最繼承的內容,內容最少。因為它不斷地向上抽取,抽取是共性的。因此,整個體系中最基本的功能都在A中。→這里的分析,體現出我們對於多層繼承的不理解,對於繼承二字也不理解。首先,繼承意味着所有都擁有,也就是C中的成員,D中都擁有,往上是一個抽取的過程。核心在繼承二字

當想要使用一個體系的時候,體系涉及的對象很多,這些對象之間存在的一些關系,因為功能都很相似,不斷抽取,形成體系。那就意味着,想要使用一門技術,就要使用一個體系。我想使用這個體系的時候,應該查閱最上面的類。因為最上面的定義的是這個體系中最共性,最基本的功能。查閱完頂層類之后,最終是要拿對象調用方法,這里有五個類,創建哪個對象靠譜?有人說看完A了,直接創建A類對象就行了。這么做是可以的,但是有兩點問題要注意,一是A能不能創建對象?二是用A創建對象,使用的成員太少,不如使用下面的類,繼續往下推的話,采用D類做對象最合適,D不僅可以使用A的對象,還可以使用自己特有的方法。

Java支持多層繼承,也就是繼承體系,

以后使用繼承的時候,記住這兩點就可以了。同時后面學習集合和IO時,也是這兩點。

總結:講解了一下,多繼承的特點。

 


免責聲明!

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



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