Search code examples
c#overridingsealed

Sealed keyword in association with override


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?


Solution

  • 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.