与覆盖密封的关联关键字(Sealed keyword in association with ove

2019-07-05 03:54发布

是否总是要遵循sealed用关键字override在类似于下面的代码的方法的签名:

public sealed override string Method1(){.....}

我的意思是,如果我要“封”基类中的方法,无需重写,是override必要的关键字还是?

Answer 1:

如果重写它密封的方法才有意义。

这里发生的是以下几点:
您正在覆盖从基类的方法( override ),并告诉编译器从你的类派生类不再允许重写此方法( sealed )。

如果该方法是在您的类中声明一个新的,并要防止重写它的派生类,根本就没有声明为虚。

如果该方法是在基类中声明,但不是重写密封那就没有任何意义,因为它已经不能被覆写。



Answer 2:

我认为Hilgarth先生提供了最好的答案在这里 ,但只是为了增加对谁在爪哇 (像我)以前的后台程序员一些新的东西,我想大多数新程序员C#,往往会混淆sealedfinalJava关于压倒一切。

在Java中,没有指定默认的行为"any"修饰的是,该方法在派生类中 。

而在C#,默认行为是,除非使用明确指定该方法被 virtual关键字。

希望这有助于补充上述的最佳答案。



Answer 3:

您只能封住一个覆盖,所以我想答案是肯定的。



文章来源: Sealed keyword in association with override