Diffrence between Showding and overriding

1. Purpose :

Shadowing : Protecting against a subsequent base class modification introducing a member you have already defined in your derived class

Overriding : Achieving polymorphism by defining a different implementation of a procedure or property with the same calling sequence

2.Redefined element :

Shadowing : Any declared element type

Overriding : Only a procedure (Function or Sub) or property

3.Redefining element :

Shadowing : Any declared element type

Overriding : Only a procedure or property with the identical calling sequence

4.Accessibility :

Shadowing : Any accessibility

Overriding : Cannot expand the accessibility of overridden element (for example, cannot override Protected with Public)

5.Readability and writability : Shadowing : Any combination

Overriding : Cannot change readability or writability of overridden property

6.Keyword usage :

Shadowing : Shadows recommended in derived class;Shadows assumed neither Shadows nor Overrides specified

Overriding : Overridable required in base class; Overrides required in derived class 7.Inheritance of redefining element by classes deriving from your derived class : Shadowing : Shadowing element inherited by further derived classes; shadowed element still hidden Overriding : Overriding element inherited by further derived classes; overridden element still overridden