編程基礎(chǔ)之Java中使用方法覆蓋的作用

編程基礎(chǔ)之Java中使用方法覆蓋的作用

長(zhǎng)沙一度軟件培訓(xùn)      2022-03-23 03:10:01     15

編程基礎(chǔ)之Java中使用方法覆蓋的作用,回顧一下方法重載:1.什么時(shí)候考慮使用方法重載overload?答:當(dāng)在一個(gè)類中,如果功能相似的話,建議將名稱定義成一樣,只是參數(shù)

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

回顧一下方法重載:

1.什么時(shí)候考慮使用方法重載overload?

答:當(dāng)在一個(gè)類中,如果功能相似的話,建議將名稱定義成一樣,只是參數(shù)列表(個(gè)數(shù),順序,類型)不同,這樣代碼美觀,且方便編程。

2.什么條件構(gòu)成方法重載overload?

答:(1)同一個(gè)類當(dāng)中;(2)方法名相同;(3)參數(shù)列表不同(個(gè)數(shù),順序,類型)

3.什么時(shí)候我們會(huì)考慮使用“方法覆蓋”呢?

子類繼承父類之后,當(dāng)繼承過來的方法無法滿足當(dāng)前子類的業(yè)務(wù)需求時(shí),子類有權(quán)利對(duì)這個(gè)方法進(jìn)行重新編寫,又叫“方法的覆蓋”。

方法覆蓋又叫做:方法重寫,英文單詞:Override。

4.方法覆蓋的條件是什么?

(1)兩個(gè)類必須有繼承關(guān)系;

(2)重寫之后的方法和之前的方法具有相同的返回值類型,相同的方法名,相同的形式參數(shù)列表;

(3)重寫方法的訪問權(quán)限不能比之前方法的權(quán)限更低,可以更高;

(4)重寫方法的拋出異常數(shù)不能比之前方法的拋出異常數(shù)更多,可以更少。

5.方法覆蓋的注意事項(xiàng):

(1)方法覆蓋只是針對(duì)方法,和屬性無關(guān);

(2)父類的私有方法無法覆蓋;

(3)構(gòu)造方法不能被繼承,所以構(gòu)造方法也不能被覆蓋;

(4)方法覆蓋只是針對(duì)實(shí)例方法,靜態(tài)方法覆蓋沒有意義。

(5)書寫方法覆蓋時(shí),建議使用復(fù)制粘貼父類的方法到子類,手動(dòng)寫可能會(huì)失誤。

測(cè)試代碼:

public?class?MyTest?{	public?static?void?main(String[]?args)?{		Cat?c1?=?new?Cat();		c1.run();??//輸出:貓?jiān)谧哓埐?!!				Bird?b1?=?new?Bird();?		b1.run();??//輸出:鳥兒在飛翔!!!	?	}}class?Animal?{	//?移動(dòng)方法,訪問權(quán)限為protected,比public低	protected?void?run()?{?		System.out.println("動(dòng)物在移動(dòng)!!!");	}}class?Cat?extends?Animal?{	//改方法的訪問權(quán)限不能比原繼承方法的訪問權(quán)限低,可以更高	public?void?run()?{		System.out.println("貓?jiān)谧哓埐?!!");				//?這里不能拋出異常,因?yàn)閽伋霎惓?shù)=1?>?繼承方法的拋出異常數(shù)			}}class?Bird?extends?Animal?{	public?void?run()?{		System.out.println("鳥兒在飛翔!!!");	}}

以上就是長(zhǎng)沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)之Java中使用方法覆蓋的作用”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。