override/new区别

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 的话就不改变父类里的方法;

posted @ 2020-07-26 09:41  Doc.stu  阅读(108)  评论(0编辑  收藏  举报