關於C 中,繼承類重寫與隱藏基類方法的區別

2021-03-31 08:56:58 字數 509 閱讀 9578

using

system;

using

system.collections;

public

class

nevermore60customer:customer 

...

public

class

samplesarray 

...}

}

}

customer cust1=new nevermore60customer();

如果是重寫:則,如果宣告的基類物件,指向的是派生類,那麼這時呼叫的是派生類中對基本重寫的方法的方法(如上所示)

如果是隱藏基類方法: public new string getfunnystring()

則:customer cust1=new nevermore60customer();此時cust1呼叫的仍是宣告時候的基類中的getfunnystring方法.

但二者宣告與賦值都是同乙個類時,不會發生這種問題.

C 隱藏基類方法和重寫

本質上來說,是隱藏子類中基類的方法,但在子類中仍然可以訪問該功能。示例如下 namespace 隱藏基類和重寫 public class duck animal class program 執行結果為 值得注意的是,若在子類duck中不使用new,可以正常執行,但會生成乙個警告如下,說明隱藏了乙個基...

c 隱藏基類方法和重寫基類方法的區別

最近重新學習c 中基礎,找到了隱藏基類方法和重寫基類方法的一點區別,二者都是在派生類中定義了與基類中相同的方法,相同點派生類物件將執行各自的派生類中的方法,不同點,在向上轉型後,重寫基類方法的呼叫的是派生類的方法,而隱藏基類呼叫的是基類的方法,具體實驗 class program 如果乙個方法被子類...

c 隱藏基類方法和重寫基類方法的區別

最近重新學習c 中基礎,找到了隱藏基類方法和重寫基類方法的一點區別,二者都是在派生類中定義了與基類中相同的方法,相同點派生類物件將執行各自的派生類中的方法,不同點,在向上轉型後,重寫基類方法的呼叫的是派生類的方法,而隱藏基類呼叫的是基類的方法,具體實驗 class program 如果乙個方法被子類...