在一个方法前面加new 操作符是违背OO的思想的,不过面试的人可能会问到。
例如:
BaseClass ab =new SubClass();
ab.MethodA(); //MethodA 是 BaseClass中的virtual 方法,在SubClass中被override。
此时调用的是BaseClass中的方法而不是子类中的。
SubClass su=new SubClass();
su.MethodA();
此时调用的才是子类中的方法。
在一个方法前面加new 操作符是违背OO的思想的,不过面试的人可能会问到。
例如:
BaseClass ab =new SubClass();
ab.MethodA(); //MethodA 是 BaseClass中的virtual 方法,在SubClass中被override。
此时调用的是BaseClass中的方法而不是子类中的。
SubClass su=new SubClass();
su.MethodA();
此时调用的才是子类中的方法。