今天我接受了一次采访,我被问到了
是否可以在不使用New关键字的情况下执行方法隐藏?
据我所知,这是不可能的.所以我说了.
是否有任何(严重的)棘手/替代方法来执行方法隐藏?我想过一次密封 ......
也像显式接口,有什么类似的......(不确定)
编辑
作为关于这个主题的最后一个问题,就像我们可以为显式接口做的那样
Interfacename.Method name
Run Code Online (Sandbox Code Playgroud)
我们可以为派生类做类似的事情.
Class Derived:Base
{
public void Base.SomeMethod(){}
}
Run Code Online (Sandbox Code Playgroud)
绝对 - 如果你没有指定任何东西,你仍然可以获得与new修饰符相同的效果,但你也会收到警告.
当然,还有明确的接口实现.
在这两种情况下,只需将目标转换为其他类型"取消隐藏"该方法:
((BaseClass) x).SomeMethod();
((IFoo) x).SomeMethod();
Run Code Online (Sandbox Code Playgroud)
密封类有无关方法隐藏虽然-或者更确切地说,它可以防止任何派生类从隐藏的方法,通过确保有是没有派生类.
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |