Overrides and Shadows methods from base class : Overridable « Class Module « VB.Net Tutorial






Option Strict On

 Imports System
 Imports Microsoft.VisualBasic

 Interface Printable
     Sub Read( )
     Sub Write( )
 End Interface

 Public Class Document : Implements Printable
     Public Sub New(ByVal s As String)
         Console.WriteLine("Creating document with: {0}", s)
     End Sub
     Public Overridable Sub Read( ) Implements Printable.Read
         Console.WriteLine("Document Virtual Read Method for Printable")
     End Sub
     Public Sub Write( ) Implements Printable.Write
         Console.WriteLine("Document Write Method for Printable")
     End Sub
 End Class

 Public Class Note : Inherits Document
     Public Sub New(ByVal s As String)
         MyBase.New(s)
         Console.WriteLine("Creating note with: {0}", s)
     End Sub
     Public Overrides Sub Read( )
         Console.WriteLine("Overriding the Read method for Note!")
     End Sub
     Public Shadows Sub Write( )
         Console.WriteLine("Implementing the Write method for Note!")
     End Sub
 End Class

 Class Tester
     Public Shared Sub Main( )
         Dim theNote As Document = New Note("Test Note")

         If TypeOf theNote Is Printable Then
             Dim isNote As Printable = theNote
             isNote.Read( )
             isNote.Write( )
         End If

         Console.WriteLine(vbCrLf)

         theNote.Read( )
         theNote.Write( )

         Console.WriteLine(vbCrLf)

         Dim note2 As New Note("Second Test")

         If TypeOf note2 Is Printable Then
             Dim isNote2 As Printable = note2
             isNote2.Read( )
             isNote2.Write( )
         End If
         Console.WriteLine(vbCrLf)

         note2.Read( )
         note2.Write( )
     End Sub
 End Class
Creating document with: Test Note
Creating note with: Test Note
Overriding the Read method for Note!
Document Write Method for Printable


Overriding the Read method for Note!
Document Write Method for Printable


Creating document with: Second Test
Creating note with: Second Test
Overriding the Read method for Note!
Document Write Method for Printable


Overriding the Read method for Note!
Implementing the Write method for Note!








6.42.Overridable
6.42.1.Overrides Overridable methods
6.42.2.Overrides and Shadows methods from base class
6.42.3.ToString method overrides
6.42.4.Derived Class and Overrides