了解派生、重寫、多態(tài)的概念

派生類:利用繼承機(jī)制,新的類可以從已有的類中派生。那些用于派生的類稱為這些特別派生出的類的“基類”。

多態(tài)(Polymorphism):允許將子類類型的指針賦值給父類類型的指針。同一操作作用于不同的對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。在運(yùn)行時(shí),可以通過指向基類的指針,來調(diào)用實(shí)現(xiàn)派生類中的方法。

多態(tài)存在的三個(gè)必要條件

一、要有繼承;

二、要有重寫;

三、父類引用指向子類對(duì)象。

多態(tài)的好處:

1.可替換性(substitutability)。多態(tài)對(duì)已存在代碼具有可替換性。例如,多態(tài)對(duì)圓Circle類工作,對(duì)其他任何圓形幾何體,如圓環(huán),也同樣工作。

2.可擴(kuò)充性(extensibility)。多態(tài)對(duì)代碼具有可擴(kuò)充性。增加新的子類不影響已存在類的多態(tài)性、繼承性,以及其他特性的運(yùn)行和操作。實(shí)際上新加子類更容易獲得多態(tài)功能。例如,在實(shí)現(xiàn)了圓錐、半圓錐以及半球體的多態(tài)基礎(chǔ)上,很容易增添球體類的多態(tài)性。

3.接口性(interface-ability)。多態(tài)是超類通過方法簽名,向子類提供了一個(gè)共同接口,由子類來完善或者覆蓋它而實(shí)現(xiàn)的。如圖8.3 所示。圖中超類Shape規(guī)定了兩個(gè)實(shí)現(xiàn)多態(tài)的接口方法,computeArea()以及computeVolume()。子類,如Circle和Sphere為了實(shí)現(xiàn)多態(tài),完善或者覆蓋這兩個(gè)接口方法。

4.靈活性(flexibility)。它在應(yīng)用中體現(xiàn)了靈活多樣的操作,提高了使用效率。

5.簡(jiǎn)化性(simplicity)。多態(tài)簡(jiǎn)化對(duì)應(yīng)用軟件的代碼編寫和修改過程,尤其在處理大量對(duì)象的運(yùn)算和操作時(shí),這個(gè)特點(diǎn)尤為突出和重要

override->重寫(=覆蓋)、overload->重載、polymorphism -> 多態(tài)

override是重寫(覆蓋)了一個(gè)方法,以實(shí)現(xiàn)不同的功能。一般是用于子類在繼承父類時(shí),重寫(重新實(shí)現(xiàn))父類中的方法。

重寫(覆蓋)的規(guī)則

1、重寫方法的參數(shù)列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是重載.

2、重寫方法的訪問修飾符一定要大于被重寫方法的訪問修飾符(public>protected>default>private)。

3、重寫的方法的返回值必須和被重寫的方法的返回一致;

4、重寫的方法所拋出的異常必須和被重寫方法的所拋出的異常一致,或者是其子類;

5、被重寫的方法不能為private,否則在其子類中只是新定義了一個(gè)方法,并沒有對(duì)其進(jìn)行重寫。

6、靜態(tài)方法不能被重寫為非靜態(tài)的方法(會(huì)編譯出錯(cuò))。

overload是重載,一般是用于在一個(gè)類內(nèi)實(shí)現(xiàn)若干重載的方法,這些方法的名稱相同而參數(shù)形式不同。

重載的規(guī)則

1、在使用重載時(shí)只能通過相同的方法名、不同的參數(shù)形式實(shí)現(xiàn)。不同的參數(shù)類型可以是不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序(參數(shù)類型必須不一樣);

2、不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載;

? ? ? ? ? ? ? ? ? ? ? 3、方法的異常類型和數(shù)目不會(huì)對(duì)重載造成影響;

多態(tài)的概念說法是:繼承是子類使用父類的方法,而多態(tài)則是父類使用子類的方法。

一般,我們使用多態(tài)是為了避免在父類里大量重載引起代碼臃腫且難于維護(hù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容