【发布时间】:2010-03-16 15:10:16
【问题描述】:
最近在MS面试中又问了一个基本问题
class A {
public virtual void Method1(){}
public void Method2() {
Method1();
}
}
class B:A {
public override void Method1() { }
}
class main {
A obk = new B();
obk.Method2();
}
那么调用了哪个函数?错别字见谅。
【问题讨论】:
-
你为什么不试试看?
-
@Jeff:没关系; B.Method1() 仍然是被调用的函数。
-
我认为根据 VMT(Vitual Method Table),将调用被覆盖方法的最新版本。所以它可能是 B.Method1()
标签: c# polymorphism