Class Module VB.Net Tutorial

Public Class Point  
   Protected x As Integer
   Protected y As Integer
   Public Sub New (xValue As Integer, yValue As Integer)
    Me.x = xValue
    Me.y = yValue
   End Sub
   Public Overrides Overloads Function Equals(obj As Object) As Boolean
      If obj Is Nothing OrElse Not Me.GetType() Is obj.GetType() Then
         Return False
      End If
      Dim p As Point = CType(obj, Point)
      Return Me.x = p.x And Me.y = p.y
   End Function 
   Public Overrides Function GetHashCode() As Integer
      Return x Xor y
   End Function 
End Class 
Public Class Point3D
   Inherits Point
   Private z As Integer
   Public Sub New (xValue As Integer, yValue As Integer, zValue As Integer)
      MyBase.New(xValue, yValue)
      Me.z = zValue
   End Sub
   Public Overrides Overloads Function Equals(obj As Object) As Boolean
      Return MyBase.Equals(obj) And z = CType(obj, Point3D).z
   End Function 
   Public Overrides Function GetHashCode() As Integer
      Return MyBase.GetHashCode() Xor z
   End Function 
End Class