Difference Between Shadowing and Override in C#

Difference between Shadowing and Override in C#
Criterion | Shadowing | Overriding |
---|---|---|
Purpose | Protecting against a subsequent base class modification introducing a member you have already defined in your derived class | Achieving |
Redefined element | Any declared element type | Only a procedure (Function or Sub) or property |
Redefining element | Any declared element type | Only a procedure |
or property with the identical calling sequence1AccessibilityAny accessibilityCannot expand the accessibility of overridden element (for example cannot override Protected with Public)Readability and writabilityAny combinationCannot change readability or writability of overridden propertyKeyword usageShadows recommended in derived class; Shadows assumed if neither Shadows nor Overrides specifiedOverridable required in base class; Overrides required in derived classInheritance of redefining element by classes deriving from your derived classShadowing element inherited by further derived classes; shadowed element still hidden2Overriding element inherited by further derived classes; overridden element still overridden
