JAVA-初步认识-第八章-继承-单继承和多重继承
一.
說完了繼承的基本概述之后,了解一下在java中它的體現(xiàn)方式。
大家都知道java來自于c++,c++有多繼承,java對其中的多繼承進(jìn)行了改良。為什么不直接支持多繼承呢?要牢記,這個原因在后面可以解決很多問題。
二.
觀看下面的截圖,截圖表現(xiàn)的是多繼承關(guān)系,就是說C同時具備A和B里面的東西。
相較于多繼承帶來的好處,java更注重多繼承帶來的問題,因此把多繼承改良掉了。
現(xiàn)在來解釋為什么不直接支持多繼承。
以上面截圖中的例子來講解,為什么不支持多繼承。C是上面A和B的子類,也就具備A和B中的方法,也就是通過匿名對象,調(diào)用A和B中的方法。子類拿到了父類中的兩個方法,但是調(diào)用show()的時候,不知道調(diào)用哪一個show(),這就是不確定。
兩個類中有相同的方法時(這里的相同說的是函數(shù)聲明相同),不知道運(yùn)行哪一個。這就是java不直接支持多繼承的原因,因?yàn)槎鄠€父類中有相同成員,會產(chǎn)生調(diào)用的不確定性。
三.
截圖所描述的就是多繼承。依我目前的認(rèn)識來看,從A到D,A中所包含的共性成員是最多的,然后逐層遞減,但是設(shè)置這么多層的繼承,是否有這個必要?還是說在實(shí)際應(yīng)用中,對層數(shù)有所要求?
上面的截圖稱之為繼承體系,父類是在不斷地向上抽取過程中產(chǎn)生的。
A是怎么來的?分析一下,不斷向上抽取出來的,A里面定義的,是這個體系里面,最繼承的內(nèi)容,內(nèi)容最少。因?yàn)樗粩嗟叵蛏铣槿?#xff0c;抽取是共性的。因此,整個體系中最基本的功能都在A中。→這里的分析,體現(xiàn)出我們對于多層繼承的不理解,對于繼承二字也不理解。首先,繼承意味著所有都擁有,也就是C中的成員,D中都擁有,往上是一個抽取的過程。核心在繼承二字。
當(dāng)想要使用一個體系的時候,體系涉及的對象很多,這些對象之間存在的一些關(guān)系,因?yàn)楣δ芏己芟嗨?#xff0c;不斷抽取,形成體系。那就意味著,想要使用一門技術(shù),就要使用一個體系。我想使用這個體系的時候,應(yīng)該查閱最上面的類。因?yàn)樽钌厦娴亩x的是這個體系中最共性,最基本的功能。查閱完頂層類之后,最終是要拿對象調(diào)用方法,這里有五個類,創(chuàng)建哪個對象靠譜?有人說看完A了,直接創(chuàng)建A類對象就行了。這么做是可以的,但是有兩點(diǎn)問題要注意,一是A能不能創(chuàng)建對象?二是用A創(chuàng)建對象,使用的成員太少,不如使用下面的類,繼續(xù)往下推的話,采用D類做對象最合適,D不僅可以使用A的對象,還可以使用自己特有的方法。
Java支持多層繼承,也就是繼承體系,
以后使用繼承的時候,記住這兩點(diǎn)就可以了。同時后面學(xué)習(xí)集合和IO時,也是這兩點(diǎn)。
總結(jié):講解了一下,多繼承的特點(diǎn)。
?
轉(zhuǎn)載于:https://www.cnblogs.com/wsw-bk/p/7723993.html
總結(jié)
以上是生活随笔為你收集整理的JAVA-初步认识-第八章-继承-单继承和多重继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos使用git安装nvm
- 下一篇: android studio 获取SHA