PolyMorphism At Work : Polymorphism « Class « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Development
8.Event
9.File Directory
10.Generics
11.GUI
12.Language Basics
13.LINQ
14.Network Remote
15.Security
16.Thread
17.Windows Presentation Foundation
18.Windows System
19.XML
20.XML LINQ
VB.Net Tutorial
VB.Net by API
VB.Net » Class » PolymorphismScreenshots 
PolyMorphism At Work
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(2As 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 = (+ 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



           
       
Related examples in the same category
1.Demonstrate polymorphism in Point-Circle-Cylinder hierarchyDemonstrate polymorphism in Point-Circle-Cylinder hierarchy
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.