我有一个类(B类)继承了包含虚方法的另一个类(A类).
错误地,我在B类中声明(应该是)重写方法时省略了override关键字.
A级
public class ClassA{ public virtual void TestMethod(){ } }
B级
public class ClassB : ClassA{ public void TestMethod(){ } }
编译的代码没有问题.有谁能解释为什么?
解决方法
这不是模棱两可的.它应该编译并发出警告,说明你应该指定“new”或“override”,并且默认值实际上是“new”.
当我尝试编译代码时它肯定会发出警告 – 当你说它编译“罚款”并且“没有问题”时你忽略了警告吗?