Shadows keyword in VB.NET

Shadows Keyword

Use shadows to define method hiding explicitly
. 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:


s1.gif