作者QQ29 (我愛阿蓉)
看板C_Sharp
標題[問題] 多型疑惑 請教
時間Tue Jul 5 08:35:37 2011
不好意思 以下有個簡單的測試程式 想要請教一下觀念
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: 多型:使用同一個操作介面來操作不同的物件實例 11/24 22:31