我目前正在开展一个新项目,并且有很多警告:
function'yyy'在基类'zzz'中隐藏一个可覆盖的方法。要覆盖基本方法,必须将此方法声明为“覆盖”。
我想知道将所有内容放在Overrides是否安全。这是默认行为吗?将会进行大量测试,我希望尽量减少这些问题。
答案 0 :(得分:4)
将其更改为覆盖是不一样的。您可以添加关键字Shadows
以消除警告,但如果您已经使用该消息长时间运行它,则将其更改为覆盖可能会导致事情以不同的方式运行。
覆盖和阴影之间的唯一区别是阴影不具有覆盖所带来的多态效果,因此如果在基类对象上调用方法,即使它碰巧持有子类实例,基类也是如此方法总是被调用。
但是,再次,如果你收到了警告,这意味着它正在为你添加Shadows
关键字,但它会抛出警告以确保你想要的效果,你可以通过添加它来消除它关键字你自己。如果您怀疑Overrides
是您想要的行为,您也可以添加它,只是意识到它们不相同。