Como posso impedir que uma aula seja herdada em C#?
-
03-07-2019 - |
Pergunta
Em Java, eu poderia fazer isso com a palavra -chave 'final'. Não vejo 'final' em C#. Existe um substituto?
Solução
Você está procurando o sealed
palavra -chave. Faz exatamente o que final
Palavra -chave em Java faz. As tentativas de herdar resultarão em um erro de compilação.
Outras dicas
Esteja ciente de que "acho que ninguém precisará herdar disso" não é um bom motivo para usar "selado". A menos que você tenha uma necessidade específica de garantir que uma implementação específica seja usada, deixe a classe sem sela.
Como Joel já aconselhou, você pode usar sealed
ao invés de final
em c#.
http://en.csharp-online.net/csharp_faq:_does_csharp_support_final_classes
o sealed
Modificador fará o que final
faz em Java.
Além disso, embora provavelmente não seja o que você está procurando nessa situação, marcando uma aula como static
Também evita que seja herdado (fica selado nos bastidores).
o sealed
A palavra -chave funcionaria, mas ainda assim você pode derivar da classe usando o reflexo IIRC.