有下面的程序,注意输出结果:
abstract class BaseClass
{
public virtual void MethodA()
{
Console.WriteLine("BaseClass:MethodA");
}
public virtual void MethodB()
{
Console.WriteLine("BaseClass:MethodB");
}
}
class TestClass : BaseClass
{
public void MethodA()
{
Console.WriteLine("TestClass:MethodA");
}
public override void MethodB()
{
Console.WriteLine("TestClass.MethodB");
}
}
class Test2Class : TestClass
{
new public void MethodB()
{
Console.WriteLine("Test2Class.MethodB");
}
}
static void Main(string[] args)
{
Test2Class A = new Test2Class();
A.MethodA();
A.MethodB();
((BaseClass)A).MethodB();
Console.Read();
}
输出结果为:
TestClass:MethodA
Test2Class.MethodB
TestClass.MethodB