我想知道是否可以使用繼承類(它覆蓋方法)對象訪問基本虛擬方法。從繼承子類對象訪問父類虛擬方法
我知道這不是一個好的做法,但我想知道這一點的原因是,如果它在技術上是可行的。我不遵循這種做法,只是出於好奇而問。
我確實看到了一些類似的問題,但我沒有得到我正在尋找的答案。
實施例:
public class Parent
{
public virtual void Print()
{
Console.WriteLine("Print in Parent");
}
}
public class Child : Parent
{
public override void Print()
{
Console.WriteLine("Print in Child");
}
}
class Program
{
static void Main(string[] args)
{
Child c = new Child();
//or Parent child = new Child();
child.Print(); //Calls Child class method
((Parent)c).Print(); //Want Parent class method call
}
}
請解釋downvotes。 在stackoverflow上的任何一個現有的類似問題的鏈接(令人滿意的答案)是可以接受的答案。 謝謝。
我昨天幾乎回答了同樣的問題,在這裏; http://stackoverflow.com/questions/14491513/calling-both-base-and-derived-methods/14491581#14491581 –
顯式調用父類Print()方法。顯然,正如你所指出的,這個架構試圖扭轉多態行爲 - 不是明智的 –
@AdityaSihag;這對於重寫的方法不起作用。只有'new',按照上面的鏈接。 –