這裏一個更基本的問題問MS近日接受採訪時多態性和C#
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();
}
所以哪個函數被調用?對不起,錯別字。
你爲什麼不試試呢? – 2010-03-16 15:12:25
@Jeff:沒關係; B.Method1()仍然是被調用的函數。 – apandit 2010-03-16 15:15:04
我認爲根據VMT(Vitual Method Table),重寫的方法的最新版本將被調用。 所以它可能是B.Method1() – TalentTuner 2010-03-16 15:16:10