即使反射,也无法做到。实际上Derived.Foo()
,即使在Derived
强制转换回其基类的实例上,C#中的多态实际上也保证始终会调用它。
Base.Foo()
从Derived
实例调用的唯一方法是显式使其可从Derived
类访问:
class Derived : Base
{
public override void Foo()
{
Console.WriteLine("Derived");
}
public void BaseFoo()
{
base.Foo();
}
}