|
override(覆蓋)用在繼承中:
首先override是繼承關(guān)系的基礎(chǔ)上的一種語(yǔ)法現(xiàn)象。override方法提供從基類(lèi)繼承的成員的新實(shí)現(xiàn)。 子類(lèi)可繼承父類(lèi)中的方法,而不需要重新編寫(xiě)相同的方法。但有時(shí)子類(lèi)并不想原封不動(dòng)地繼承父類(lèi)的方法,而是想作一定的修改,這就需要采用override overload(重載)用在非繼承中: 方法重載是讓類(lèi)以統(tǒng)一的方式處理不同類(lèi)型數(shù)據(jù)的一種手段。 方法重載,就是在類(lèi)中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)(返回類(lèi)型隨便)。調(diào)用方法時(shí)通過(guò)傳遞給它們的不同個(gè)數(shù)和類(lèi)型的參數(shù)來(lái)決定具體使用哪個(gè)方法, 這是編譯時(shí)多態(tài)性。 二者共同實(shí)現(xiàn)多態(tài)性的完整。override實(shí)現(xiàn)運(yùn)行時(shí)多態(tài),方法重載overload實(shí)現(xiàn)編譯時(shí)多態(tài)。 多態(tài)性,主要表現(xiàn)在函數(shù)調(diào)用時(shí)實(shí)現(xiàn)“一種接口,多種方法”。 靜態(tài)多態(tài)性是通過(guò)重載機(jī)制來(lái)實(shí)現(xiàn)。是編譯時(shí)根據(jù)參數(shù)不同(函數(shù)名相同)調(diào)用不同的函數(shù),是在同一個(gè)類(lèi)中。 動(dòng)態(tài)多態(tài)性是通過(guò)虛函數(shù)機(jī)制來(lái)實(shí)現(xiàn)。是函數(shù)名相同,參數(shù)也相同,只能在運(yùn)行時(shí)才能確定的,是在具有一定繼承關(guān)系的不同類(lèi)中。C#里用override 與 virtual的搭配使用實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性(polymorphism ) |
|
|