Sealed keyword in association with override

Victor Mukherjee picture Victor Mukherjee · Dec 13, 2012 · Viewed 10.2k times · Source

Is it always necessary to follow the sealed keyword with override in the signature of a method like the below code:

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

I mean, if I want to "seal" the method within the base class without overriding, is the override keyword still necessary?

Answer

Daniel Hilgarth picture Daniel Hilgarth · Dec 13, 2012

Sealing a method only makes sense if you override it.

What happens here is the following:
You are overriding a method from a base class (override) and tell the compiler that classes derived from your class are no longer allowed to override this method (sealed).

If the method is a new one declared by you in your class and you want to prevent derived classes from overriding it, simply don't declare it as virtual.

If the method is declared in a base class but is not overridable sealing it wouldn't make any sense, because it already can't be overriden.