Define Overridable Member Function : Overridable « Class « VB.Net






Define Overridable Member Function

Define Overridable Member Function
Imports System

Public Class MainClass

    Shared Sub Main(ByVal args As String())
      Dim circle As Circle

      circle = New Circle(37, 43, 2.5) ' instantiate Circle

      Console.WriteLine( "X coordinate is " & circle.X & vbCrLf & _
         "Y coordinate is " & circle.Y & vbCrLf & "Radius is " & _
         circle.Radius )

      circle.X = 2
      circle.Y = 2
      circle.Radius = 4.25

      Console.WriteLine("The new location and radius of circle are " & _
         vbCrLf & circle.ToString() )

      Console.WriteLine( "Diameter is " & _
         String.Format("{0:F}", circle.Diameter()) )

      Console.WriteLine("Circumference is " & _
         String.Format("{0:F}", circle.Circumference()) )

      Console.WriteLine( "Area is " & String.Format("{0:F}", circle.Area()) )
    End Sub
End Class


Public Class Circle
   Inherits Point ' Circle Inherits from class Point

   Private mRadius As Double

   ' default constructor
   Public Sub New()

      ' implicit call to Point constructor occurs here
      Radius = 0
   End Sub ' New

   ' constructor
   Public Sub New(ByVal xValue As Integer, _
      ByVal yValue As Integer, ByVal radiusValue As Double)

      ' use MyBase reference to Point constructor explicitly
      MyBase.New(xValue, yValue)
      Radius = radiusValue
   End Sub ' New

   ' property Radius
   Public Property Radius() As Double

      Get
         Return mRadius
      End Get

      Set(ByVal radiusValue As Double)

         If radiusValue > 0 Then
            mRadius = radiusValue
         End If

      End Set

   End Property ' Radius

   ' calculate Circle diameter
   Public Function Diameter() As Double
      Return mRadius * 2
   End Function ' Diameter

   ' calculate Circle circumference
   Public Function Circumference() As Double
      Return Math.PI * Diameter()
   End Function ' Circumference

   ' calculate Circle area
   Public Overridable Function Area() As Double
      Return Math.PI * mRadius ^ 2
   End Function ' Area

   ' return String representation of Circle
   Public Overrides Function ToString() As String

      ' use MyBase reference to return Point String representation
      Return "Center = " & MyBase.ToString() & _
         "; Radius = " & mRadius
   End Function ' ToString

End Class



Public Class Point
   ' implicitly Inherits Object

   ' point coordinate
   Private mX, mY As Integer

   ' default constructor
   Public Sub New()

      ' implicit call to Object constructor occurs here
      X = 0
      Y = 0
   End Sub ' New

   ' constructor
   Public Sub New(ByVal xValue As Integer, _
      ByVal yValue As Integer)

      ' implicit call to Object constructor occurs here
      X = xValue
      Y = yValue
   End Sub ' New

   ' property X
   Public Property X() As Integer

      Get
         Return mX
      End Get

      Set(ByVal value As Integer)
         mX = value
      End Set

   End Property ' X

   ' property Y 
   Public Property Y() As Integer

      Get
         Return mY
      End Get

      Set(ByVal value As Integer)
         mY = value
      End Set

   End Property ' Y

   ' return String representation of Point
   Public Overrides Function ToString() As String
      Return "[" & mX & ", " & mY & "]"
   End Function ' ToString

End Class
           
       








Related examples in the same category

1.Overridable Overloads Method from Base ClassOverridable Overloads Method from Base Class
2.Use Overridable FunctionUse Overridable Function