public class American : Men //继承了Men { public override string Speak() //override { return "美国人说英文"; } public new string Eat() //new { return "美国人吃西餐"; } } public class Men //父类 { public virtual string Speak() { return "默认说中文"; } public virtual string Eat() { return "默认吃米饭"; } }
American类重写了Men类的Eat,所以执行的是重写后的Eat方法;
American类new了一个Eat方法,所以Men类的Eat不受影响,执行的还是原来的Eat;
总结:override会重写改变父类的方法,new 的话就不改变父类里的方法;