When an instance method declaration includes the Override modifier, it means that this method redefines implementation of an inherited virtual method of the base class.
A method overridden by an override method declaration is known as base implementation of this method. For an override method M declared in a class C, the base implementation is determined by examining each base class of C, starting with the parent class and continuing in the order of inheritance hierarchy, until an accessible method with the same signature as M is located.
The following conditions are to be satisfied to successfully compile an override method:
Base implementation of the override method can be found as described above.
This base implementation is a virtual, abstract, or override method. Base implementation cannot be a static or non-virtual method.
Base implementation is not a final method.
Base implementation and override method have the same return type.
Base implementation and override method have the same declared accessibility. The override method cannot change the accessibility of the virtual method. If the base implementation is declared with the "generic assembly" access level and the override method is located in another assembly, it should be declared with generic access level.
An example of overriding methods is given in the description of virtual methods.
See also: