When two elements in a program have same name, one of them can hide and shadow the
other one. So in such cases the element which shadowed the main element is referenced.
Below is a sample code, there are two classes “ClsParent” and “ClsShadowedParent”. In
“ClsParent” there is a variable “x” which is a integer. “ClsShadowedParent” overrides
“ClsParent” and shadows the “x” variable to a string.
Public Class ClsParent
Public x As Integer
Public Class ClsShadowedParent Inherits ClsParent
Public Shadows x As String
Difference between Shadowing and Overriding
Following are the differences between shadowing and overriding :-
√ Overriding redefines only the implementation while shadowing redefines the
√ In overriding derived classes can refer the parent class element by using “ME”
keyword, but in shadowing you can access it by “MYBASE”.
Thanks & Regards