Class VB.Net

Imports System
Imports System.Collections
Public Class MainClass
  Shared Sub Main()
     Dim e1 As New Employee("Employee", 5)
     Dim e2 As New Programmer("Programmer", 15)
     Dim e3 As New Archictect("Archictect", 15)
     Dim ourEmployees(2) As Employee
    
     ourEmployees(0) = e1
     ourEmployees(1) = e2
     ourEmployees(2) = e3
    
     Dim anEmployee As Employee
     For Each anEmployee In ourEmployees
       anEmployee.RaiseSalary(0.1D)
       Console.WriteLine(anEmployee.TheName & " salary now is " & anEmployee.Salary())
    Next
  End Sub
  
End Class
Public Class Employee
  Private m_Name As String
  Private m_Salary As Decimal
  Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)
    m_Name = TheName
    m_Salary = curSalary
  End Sub
  Public ReadOnly Property TheName() As String
    Get
      Return m_Name
    End Get
  End Property
  Public ReadOnly Property Salary() As Decimal
    Get
      Return MyClass.m_Salary
    End Get
  End Property
  Public Overridable Overloads Sub RaiseSalary(ByVal Percent As Decimal)
      m_Salary = (1 + Percent) * m_Salary
  End Sub
End Class
Public Class Programmer
  Inherits Employee
  Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)
    MyBase.New(theName, curSalary)
  End Sub
  Public Overloads Overrides Sub RaiseSalary(ByVal Percent As Decimal)
    MyBase.RaiseSalary(1.2D * Percent)
  End Sub
End Class
Public Class Archictect
    Inherits Programmer
    Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)
        MyBase.New(theName, curSalary)
    End Sub
    Public Overloads Overrides Sub RaiseSalary(ByVal Percent As Decimal)
        MyBase.RaiseSalary(2D * Percent)
    End Sub
End Class