Mega Code Archive

 
Categories / VB.Net / Class
 

PolyMorphism At Work

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