


























一次面试 做了一道题
内容如下
这道题是这样的 有四个类
public class ClassA
{
public virtual void print()
{
Console.WriteLine("My ClassA");
}
}

public class ClassB:ClassA




public class ClassC:ClassB
{
public virtual void print()
{
Console.WriteLine("My ClassC");
}

}



public class ClassD:ClassC
{
public override void print()
{
Console.WriteLine("My ClassD");
}
}

调用
ClassC Obj1=new ClassD();
Obj1.print();

ClassB Obj2=new ClassD();
Obj2.print();

ClassA Obj3=new ClassD();
Obj3.print();
结果
My ClassD
My ClassB
My ClassB
前两个结果好理解
但是第三个结果
ClassA Obj3=new ClassD();
为什么会这个样子 ?
翻了好多资料,
忽然想起里好几个月前曾经看过一篇文章:
<<我是谁>>
不过目前 这些都是我自己个人理解 希望高手能指出我的理解错误 和不对的地方
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。