class Program
{
static void Main(string[] args)
{
Parent p = new Son();
p.foo();
p.foo2();
Console.Read();
}
}
public class Parent
{
public virtual void foo()
{
Console.WriteLine("parent foo");
}
public void foo2()
{
Console.WriteLine("parent foo2");
}
}
public class Son : Parent
{
public override void foo()
{
Console.WriteLine("Son foo");
}
public new void foo2()
{
Console.WriteLine("Son foo2");
}
}
{
static void Main(string[] args)
{
Parent p = new Son();
p.foo();
p.foo2();
Console.Read();
}
}
public class Parent
{
public virtual void foo()
{
Console.WriteLine("parent foo");
}
public void foo2()
{
Console.WriteLine("parent foo2");
}
}
public class Son : Parent
{
public override void foo()
{
Console.WriteLine("Son foo");
}
public new void foo2()
{
Console.WriteLine("Son foo2");
}
}
我的理解是:p对象执行虚方法,则要到其Son子类去找复写方法;p对象执行普通方法,使用自身的方法即可——不用考虑子类的new方法。