Use of shadows keyword in VB.NET
.NET, Shadows, VB.NET, Visual Basic 2010
In this article We will learn how to use shadows in VB.NET.
Shadows:
Use shadows to define method hiding explicitly. If There are overloaded methods in the base class and you marks one of the methods as shadows using the keyword shadow in the derived class, then we cannot access the overloaded methods. OR the child member temporarily hides the parent member and activates its own. This is called shadowing. The purpose of shadows is to Protects against a subsequent base-class modification that introduces a member you have already defined in your derived class.If you do not specify either Shadows or Overrides, the compiler issues a warning message to help you be sure which kind of redefinition you want to use. If you ignore the warning, the shadowing mechanism is used.
Module Module1
Class A
Public Sub Show()
Console.WriteLine("Calling from A")
End Sub
End Class
Class B
Inherits A
Public Shadows Sub Show()
Console.WriteLine("Calling from B")
End Sub
End Class
Class C
Inherits B
Public Shadows Sub Show()
Console.WriteLine("Calling from C")
End Sub
End Class
Class Test
Public Shared Sub Main()
Dim x As A
x = New A()
x.Show()
x = New B()
x.Show()
x = New C()
x.Show()
End Sub
End Class
End Module
OUTPUT:
If we do not use the shadows keyword in the derived class it gives an warning at compile time but does not effect at the run time.