C 隱藏和覆蓋

2022-03-12 02:18:02 字數 346 閱讀 3928

1、在c#裡面,只有宣告vitual、abstract和帶override的方法能夠被子類重寫(override)。

2、如果父類方法沒有以上關鍵字,子類又有和父類一樣的方法,那麼,就預設隱藏父類方法,這時候在命名空間後面要加new關鍵字:

public

newint

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 覆蓋和隱藏

指的是 子類繼承父類屬性 函式 並且自身也有與父類同名的屬性 函式 這是編譯器就會在子類中對父類屬性做乙個隱藏,我們並不能通過子類物件直接點出父類相關屬性或函式,必須要在特定位置上加上父類作用域才可以。指的是 子類繼承父類虛函式,並且對其重寫,這時,我們用乙個父類指標來接收子類物件位址。並通過這個父...