java類的繼承原則 java繼承的作用?
java繼承的作用?(1)繼承關(guān)系是傳遞的。若類C繼承類B,類B繼承類A,則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法。繼承來的屬性和方
java繼承的作用?
(1)繼承關(guān)系是傳遞的。若類C繼承類B,類B繼承類A,則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法。繼承來的屬性和方法盡管是隱式的,但仍是類C的屬性和方法。繼承是在一些比較一般的類的基礎(chǔ)上構(gòu)造、建立和擴(kuò)充新類的最有效的手段。(2)繼承簡(jiǎn)化了人們對(duì)事物的認(rèn)識(shí)和描述,能清晰體現(xiàn)相關(guān)類間的層次結(jié)構(gòu)關(guān)系。(3)繼承提供了軟件復(fù)用功能。若類B繼承類A,那么建立類B時(shí)只需要再描述與基類(類A)不同的少量特征(數(shù)據(jù)成員和成員方法)即可。這種做法能減小代碼和數(shù)據(jù)的冗余度,大大增加程序的重用性。(4)繼承通過增強(qiáng)一致性來減少模塊間的接口和界面,大大增加了程序的易維護(hù)性。(5)提供多重繼承機(jī)制。從理論上說,一個(gè)類可以是多個(gè)一般類的特殊類,它可以從多個(gè)一般類中繼承屬性與方法,這便是多重繼承。Java出于安全性和可靠性的考慮,僅支持單重繼承,而通過使用接口機(jī)制來實(shí)現(xiàn)多重繼承。
JAVA只可以單繼承但是object又是每個(gè)類的超類,在這基礎(chǔ)上類還可以繼承一個(gè)類,是什么原理?
1.Java只支持單繼承,但是可以實(shí)現(xiàn)多個(gè)接口。如果A沒有顯示繼承任何類,系統(tǒng)會(huì)默認(rèn)繼承Object類,但是如果A顯示繼承了B,系統(tǒng)就不會(huì)給A默認(rèn)繼承Object了,但是A會(huì)繼承B,B繼承Object,相當(dāng)于A間接繼承了Object。
2.說到繼承就會(huì)想到面向?qū)ο罄锩娴囊粋€(gè)原則:優(yōu)先使用組合而不是繼承。為什么了?
首先,繼承和組合都是都可以達(dá)到代碼復(fù)用的效果。個(gè)人覺得有以下幾點(diǎn)考慮:
1.繼承的父類也就繼承了父類的成員,增加耦合性
2.父類有變動(dòng),會(huì)影響子類,而組合只需要確保接口穩(wěn)定
3.子類繼承父類在編譯期就決定了,不能動(dòng)態(tài)變化,而組合可以根據(jù)需要使用不同的實(shí)現(xiàn)類。
所以,組合更加靈活,具有可擴(kuò)展性。
但是如果需要向上轉(zhuǎn)型,或者明確類關(guān)系是is-a的關(guān)系還是需要使用繼承的。
希望對(duì)你有幫助,可以關(guān)注我,持續(xù)分享Java方面知識(shí),謝謝。