In C#, è possibile contrassegnare un metodo virtuale sottoposto a override come finale in modo che gli implementatori non possano sovrascriverlo? Come lo farei?è possibile contrassegnare il metodo sottoposto a override come finale
Un esempio può rendere più facile da capire:
class A
{
abstract void DoAction();
}
class B : A
{
override void DoAction()
{
// Implements action in a way that it doesn't make
// sense for children to override, e.g. by setting private state
// later operations depend on
}
}
class C: B
{
// This would be a bug
override void DoAction() { }
}
C'è un modo per modificare B, al fine di evitare che altri bambini C di ignorare DoAction, sia al momento della compilazione o di esecuzione?
puoi rendere i singoli metodi sigillati infatti – annakata
perché contrassegni la classe come sigillata? Puoi anche specificare questo modificatore a livello di metodo ... –
Interessante Non ho mai saputo che potresti sigillare i metodi, ma non ho mai avuto motivo di farlo. –