【发布时间】:2009-01-13 04:05:24
【问题描述】:
我有两个班级:
public class MyBase
{
public virtual void DoMe()
{
}
}
public class MyDerived:MyBase
{
public override void DoMe()
{
throw new NotImplementedException();
}
}
我有以下代码来实例化 MyDerived:
MyDerived myDerived=new MyDerived();
问题是如何调用基类的DoMe?如果我使用 myDerived.DoMe(),那么将调用派生方法,从而导致异常。我尝试将 myDerived 转换为 MyBase,但它仍然是被调用的方法的派生版本。
编辑:如以下评论中所述,我无法更改 MyDerived 或 MyBase,因为它们不是我的代码。
【问题讨论】:
-
这是对封装和信息隐藏的彻底黑客攻击,我认为没有真正的答案。虽然不确定反射......
标签: c# inheritance overriding