一个关于多态和继承的
using System;
using System.Collections.Generic;
using System.Text;
namespace TestMethod
{
class Program
{
public static void Main(string[] args)
{
C aD = new D();
A aC = new C();
aD.Foo1();
aD.Foo2();
aC.Foo1();
aC.Foo2();
}
public class A
{
public virtual void Foo1()
{
Console.WriteLine("A.Foo1() was invoked.");
Console.ReadLine();
}
public void Foo2()
{
Console.WriteLine("A.Foo2() was invoked.");
Console.ReadLine();
}
}
public class B : A
{
public override void Foo1()
{
Console.WriteLine("B.Foo1() was invoked.");
Console.ReadLine();
}
public new virtual void Foo2()
{
Console.WriteLine("B.Foo2() was invoked");
Console.ReadLine();
}
}
public class C : B
{
public new void Foo1()
{
Console.WriteLine("C.Foo1() was invoked.");
Console.ReadLine();
}
}
public class D : C
{
public override sealed void Foo2()
{
Console.WriteLine("D.Foo2() was invoked.");
Console.ReadLine();
}
}
}
}
不要放在编译器里能看出答案吗?