一.
說完了繼承的基本概述之后,了解一下在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時,也是這兩點。
總結:講解了一下,多繼承的特點。
