1、在c#裡面,只有宣告vitual、abstract和帶override的方法能夠被子類重寫(override)。
2、如果父類方法沒有以上關鍵字,子類又有和父類一樣的方法,那麼,就預設隱藏父類方法,這時候在命名空間後面要加new關鍵字:
publicnewint
sayhello()
如果不加new關鍵字,其效果也是一樣的,只是編譯器會多個警告出來。
3.所謂「隱藏」,和覆蓋是有區別的:
隱藏,當沒有用(base)關鍵字的時候,呼叫的是父類方法,否則,呼叫的就是子類的方法。
覆蓋,無論什麼時候,都是呼叫的子類的方法。
隱藏和覆蓋 C
我可以給你說說我的理解 我認為隱藏和覆蓋的區別主要體現在 多型上 舉個例子 隱藏和覆蓋 include include using namespace std class a void f class b public a virtual void g int main 結果是 a a b invo...
C 覆蓋和隱藏
class people virtual void getname different params 隱藏規則2 1 函式名相同 引數相同 2 無virtual void getphone same params 覆蓋規則 1 函式名相同 引數相同 2 有virtual virtual void g...
C 覆蓋和隱藏
指的是 子類繼承父類屬性 函式 並且自身也有與父類同名的屬性 函式 這是編譯器就會在子類中對父類屬性做乙個隱藏,我們並不能通過子類物件直接點出父類相關屬性或函式,必須要在特定位置上加上父類作用域才可以。指的是 子類繼承父類虛函式,並且對其重寫,這時,我們用乙個父類指標來接收子類物件位址。並通過這個父...