Jon*_*eet 12
"新"意味着就CLR而言,你有两种完全不同的方法 - 它们碰巧具有相同的名称,但它们在继承方面是无关的.这意味着,如果你运行:
Base b = new Derived();
Derived d = new Derived();
b.MyMethod(); // Calls Base.MyMethod
d.MyMethod(); // Calls Derived.MyMethod
Run Code Online (Sandbox Code Playgroud)
这可能会产生一些非常难以理解的代码.
通常,如果您需要不同的方法,请将它们称为不同的东 使用相同名称(和签名)的正常原因是覆盖基类方法的行为.此时您没有任何选择,只能保持名称/签名相同.