以下是核心代码
class A
{//原创来自 www.luofenming.com
public virtual void Func() // 注意virtual,表明这是一个虚拟函数
{
Console.WriteLine("Func In A");
}
}
class B : A
{
public override void Func() // 注意override ,表明重新实现了虚函数
{
Console.WriteLine("Func In B");
}
}
class C : B
{
}
class D : A
{
public new void Func() // 注意new ,表明覆盖父类里的同名类,而不是重新实现
{
Console.WriteLine("Func In D");
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
a.Func(); // 输出结果 Func In A
A b = new B();
b.Func(); // 输出结果 Func In B
A c = new C();
c.Func(); // 输出结果 Func In B
A d = new D();
d.Func(); // 输出结果 Func In A
D d1 = new D();
d1.Func(); // 输出结果 Func In D
Console.ReadLine();
}
}