考虑下面的代码示例
class BC
{
public virtual void Display()
{
System.Console.WriteLine("BC::Display");
}
}
class DC : BC
{
public override void Display()
{
System.Console.WriteLine("DC::Display");
}
}
class TC : DC
{
public override void Display()
{
System.Console.WriteLine("TC::Display");
}
}
class Demo
{
public static void Main()
{
BC b;
b = new BC();
b.Display();
b = new DC();
b.Display();
b = new TC();
b.Display();
}
}
输出
BC::Display
DC::Display
TC::Display
在此代码示例中,您可以查看 DC 的实例是由基类 BC 创建的,并且 TC 的实例是由基类 BC 创建的,例如 BC b=new DC(); BC b=新 TC();
那么为什么我们需要这个?