public class A
{
public void c()
{
Console.ReadKey();
}
}
public class B
{
public override void c()
{
//override只能重写声明为virtual、abstract、override.
}
public new void c()
{
//可以,new则无此限制
}
}
都可以通过base来调用父类的方法。
new 可以通过实例化一个A类型的B对象来调用父类的virtual方法。而overrid则不行。
public class A
{
public virtual void c()
{
Console.WriteLine("A-c");
}
}
public class B:A
{
public override void c()
{
Console.WriteLine("B-c");
//base.c();
}
}
public class C:A
{
public new void c()
{
Console.WriteLine("C-c");
//base.c();
}
}
class Program
{
static void Main(string[] args)
{
A a = new C();
a.c(); //输出 A-c
A b = new B();
b.c(); //输出 B-c
C ff = new C();
((A)ff).c(); //输出A-c
Console.ReadKey();
}
}