[C#每天进步一点点] 多态的一点思考
问题思考:
如果在父类class Base的非虚方法public A()中调用了虚方法B(),而在子类class Derived中重写了该虚方法,那么Derived.A()中调用的是虚函数父类中的实现还是子类中的实现?
结论:子类中的实现。
实例证明:
namespace Polymiorphism
{
class Base
{
public virtual void Print()
{
Console.WriteLine("Print in base class.");
}
public void PrintWarp()
{
Print();
}
}
class Derived:Base
{
public override void Print()
{
Console.WriteLine("Print in derived class");
}
}
class Program
{
static void Main(string[] args)
{
Base derived = new Derived();
derived.PrintWarp();
}
}
}
输出结果:
Print in derived class