如何让一个类不被C#继承?

时间:2008-09-30 19:57:01

标签: c# .net inheritance

在java中,我可以使用'final'关键字来完成此操作。我没有在C#中看到'final'。有替代品吗?

5 个答案:

答案 0 :(得分:35)

您正在寻找sealed关键字。它完全与Java中的final关键字完全相同。尝试继承将导致编译错误。

答案 1 :(得分:6)

还要注意“我认为任何人都不需要继承这个”并不是使用“密封”的好理由。除非您确实需要确保使用特定实现,否则请将该类保持为未密封状态。

答案 2 :(得分:2)

正如Joel已经建议的那样,您可以在C#中使用sealed代替final

http://en.csharp-online.net/CSharp_FAQ:_Does_CSharp_support_final_classes

答案 3 :(得分:1)

sealed修饰符将执行final在Java中的作用。

此外,虽然这可能不是您在这种情况下所寻找的,但将类标记为static也会使其不被继承(它在幕后变得密封)。

答案 4 :(得分:0)

sealed关键字可以使用,但您仍然可以使用反射IIRC从该类派生。