看板 C_Sharp 關於我們 聯絡資訊
不好意思 以下有個簡單的測試程式 想要請教一下觀念 interface Foo { void Initial(); } public class Foo2 : Foo { public void Initial() { Console.WriteLine("Foo2"); } } public class Foo3 : Foo2 { public void Initial() { Console.WriteLine("Foo3"); } } 而我使用 Foo f = new Foo3(); f.Initial(); 我不懂為什麼是印Foo2.... 實作interface的class 應該就具有override的特性 那繼承Foo2的class 中的Initial 且compiler有warning說我Foo3::Initial遮蔽了 Foo2的Initial 我不太懂在C#這種情況 會造成我無法直接 呼叫Foo2的initial? 請各位給點意見吧...有點不太懂這地方 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 188.220.44.99
kiedveian:C#要加上 override 關鍵字 07/05 09:20
kiedveian:public override void Initial() 07/05 09:21
kisha024: 子類別可以轉成父類別存在不是多型正常的用法嗎? 03/30 17:32
kisha024: 多型意指相同的訊息給予不同的物件會引發不同的動作 03/31 09:58
kisha024: 靜態多型:函式/運算多載 (overloading), 以靜態繫結 04/01 09:47
kisha024: 的方式完成 04/01 09:47
kisha024: 動態多型:函式覆載, 以動態繫結的方式完成 04/01 09:47
kisha024: https://tinyurl.com/qnmpfqd 11/24 22:29
kisha024: 多型:使用同一個操作介面來操作不同的物件實例 11/24 22:31