OOP多態(tài)和密封類

學(xué)習(xí)oop多態(tài)

1.方法重載

2.方法重寫

3.里氏替換原則

方法重載:構(gòu)造函數(shù)屬于特殊的方法重載

方法重載是指同一個類中相同方法的不同行為

方法重載的特點(diǎn):

1.方法名必須相同

2.參數(shù)列表必須不相同(這里的不相同是參數(shù)類型,參數(shù)個數(shù),以及參數(shù)順序)

3.在有相同參數(shù)列表的個數(shù)的前提下,方法返回值不作為判斷方法是否重載的依據(jù).

方法的重寫:是指在繼承關(guān)系中不同類之間方法之間的比較和研究

第一個關(guān)鍵字:vietual(虛)還有abstrac抽象方法的重寫

用vietual修飾的方法稱之為虛方法。

virtual一般情況下和override需要成對出現(xiàn)。

如果子類重寫使用了override,則父類必須擁有virtual修飾的方法或則abstract的抽象方法

反過來不一定成立,因?yàn)槲覀冞€有方法覆蓋

第二個關(guān)鍵字:override(重寫)

為什么要使用方法重寫呢?

1.使用虛方法其實(shí)就是對目前的程序不是很滿意,暫時方法功能是實(shí)現(xiàn)的,希望后面的程序元通過重寫父類方法的方式,進(jìn)行功能上的優(yōu)化。

2.可以通過繼承系統(tǒng)提供的類,去修改系統(tǒng)類中提供的虛方法

方法重寫需要注意的地方:

1.不能重寫父類中用sealed修飾的方法

2.不能重寫父類中用static修飾的方法

3.如果父類中存在abstact方法,子類必須重寫

密封類:斷子絕孫類

如果我們的類是密封類,那么就意味著不能有任何派生類.

但是密封類是可以擁有父類滴.

c#中密封類使用sealed關(guān)鍵字,sealed可以將類或者方法聲明為密封類或則密封方法.

對于密封類來說,表示不能繼承該類

對于密封方法來說,表示不能重寫該方法

密封類不能使用protected(因?yàn)槠錄]有派生類).

密封類不能使用virtual.(使用該方法必須有子類)

密封類的不可繼承性,所以密封類不能聲明為抽象的,即sealed關(guān)鍵字不能和abstract共同使用

如果用sealed修飾方法.必須要遵循一個條件:這個類必須有父類,并且重寫了父類的某個虛方法才可以用sealed修飾,否則是絕對不行滴.

密封類的作用就是防止外界修改本類,破壞類的內(nèi)部構(gòu)造.

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

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

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