java Java中類的組合和繼承請?jiān)敿?xì)敘述這兩種方法?
Java中類的組合和繼承請?jiān)敿?xì)敘述這兩種方法?復(fù)合類表示公共類a{}公共類B{私有a a//以a為元變量}繼承表示:公共類a{public void ddd(){}公共類B擴(kuò)展a{//它可以傳遞超級(jí)d
Java中類的組合和繼承請?jiān)敿?xì)敘述這兩種方法?
復(fù)合類表示公共類a{}公共類B{私有a a//以a為元變量}繼承表示:公共類a{public void ddd(){}公共類B擴(kuò)展a{//它可以傳遞超級(jí)ddd()采用父a}的方法
覆蓋又稱重寫,因此重寫和覆蓋是一個(gè)概念。它涵蓋了一個(gè)方法,并為不同的目的重寫了它。形式有:接口方法的實(shí)現(xiàn)。在繼承中,父類中的方法也可能包含在子類中。重載:意思是我們可以定義一些同名的方法,通過定義不同的輸入?yún)?shù)來區(qū)分這些方法,然后當(dāng)我們再次調(diào)用它們時(shí),VM會(huì)根據(jù)不同的參數(shù)樣式選擇合適的方法來執(zhí)行。例如:public class parent{//定義一個(gè)類public void read(){}public void show(){//重載show方法}public void show(int a){//重載show方法,比第一個(gè)方法多一個(gè)參數(shù)}}public class son extensions parent{//son繼承父public void read(){//并覆蓋父類。}}
java的繼承中什么叫方法覆蓋,是如何實(shí)現(xiàn)的?
1. Java只支持單一繼承,但可以實(shí)現(xiàn)多個(gè)接口。如果未顯示繼承任何類,系統(tǒng)將默認(rèn)繼承對象類。但是,如果a顯示繼承B,則系統(tǒng)不會(huì)給出默認(rèn)的繼承對象,而是a將繼承B,B將繼承object,這相當(dāng)于間接地繼承對象。
2. 談到繼承,您會(huì)想到面向?qū)ο蟮囊粋€(gè)原則:優(yōu)先考慮組合而不是繼承。為什么?
首先,繼承和組合都可以達(dá)到代碼重用的效果。我認(rèn)為有以下考慮:
1。繼承的父類繼承父類的成員以增加耦合度
2。如果父類發(fā)生變化,會(huì)影響子類,組合只需要保證接口的穩(wěn)定性
3。子類在編譯時(shí)繼承父類,不能動(dòng)態(tài)更改,但組合可以根據(jù)需要使用不同的實(shí)現(xiàn)類。
因此,組合更加靈活和可擴(kuò)展。
但是,如果您需要向上移動(dòng),或者明確說明類關(guān)系是is-a關(guān)系,則仍然需要使用繼承。
希望對您有所幫助,可以跟著我,繼續(xù)分享java知識(shí),謝謝。