一直以来我都对 virtual override 和 new 之间的区别感到疑惑不解. 特别笔试的时候特别容易考到,真的很容易弄错啊,畜生! 光看理论永远记不住,那不如写几行代码就懂了. 首先看看virtual override实现什么效果: class A { public virtual void say() { Console.WriteLine("A"); } } class B :A { public override void say() { Console.Write
关于父类引用指向子类对象 例如: 有以下2个类 public class Father { public int age = 70; public static string name = "父亲"; } public class Son : Father { public int age = 30; public static string name = "儿子"; } Father f=new Son(); 这种用法叫做"父类引用指向子类对象,或者叫&
override override是派生类用来重写基类方法的.调用的派生类方法,如需调用基类方法用base关键字 override不能重写非虚方法或静态方法. override重写必须用abstract.override.virtrual修饰的方法. new new 是派生类用来隐藏基类方法的,在派生类中看不到基类方法,但调用的还是基类的方法. 如果在派生类中要隐藏基类方法而不用new关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用new关键字. new可以隐藏基类中的普通方法