如何避免在C#中继承类?
时间:2020-03-06 14:56:37 来源:igfitidea点击:
在Java中,我可以使用'final'关键字进行此操作。我在C#中看不到"最终"。有替代品吗?
解决方案
我们正在寻找sealed
关键字。它与Java中的final
关键字完全一样。尝试继承将导致编译错误。
正如乔尔已经建议的那样,我们可以在C#中使用"密封"而不是"最终"。
http://en.csharp-online.net/CSharp_FAQ:_Does_CSharp_support_final_classes
还应注意,"我认为没有人会需要继承"不是使用"密封"的充分理由。除非我们有特定的需求要确保使用特定的实现,否则请不要密封该类。
可以使用sealed
关键字,但是仍然可以使用反射IIRC从该类派生。
sealed
修饰符将执行final
在Java中的作用。
另外,尽管在这种情况下这可能不是我们想要的,但将类标记为"静态"也可以防止其被继承(它在幕后被密封)。