Implement an Interface
Imports System Imports System.Collections Public Class MainClass Shared Sub Main() Dim e1 As New Programmer("E1", 50000) Dim e2 As New Employee("E2", 40000) Dim theTeam As Employee() = {e1, e2} e1.MyTeam = theTeam Console.WriteLine(e1.Rate(e2)) End Sub End Class Public Interface ILead Sub SpendMoraleFund(ByVal amount As Decimal) Function Rate(ByVal aPerson As Employee) As String Property MyTeam() As Employee() Property MoraleFund() As Decimal End Interface Public Class Programmer Inherits Employee Implements ILead Private m_MoraleFund As Decimal Private m_MyTeam As Employee() Public Function Rate(ByVal aPerson As Employee) As String _ Implements ILead.Rate Return aPerson.TheName & " rating to be done" End Function Public Property MyTeam() As Employee() _ Implements ILead.MyTeam Get Return m_MyTeam End Get Set(ByVal Value As Employee()) m_MyTeam = Value End Set End Property Public Sub SpendMoraleFund(ByVal amount As Decimal) _ Implements ILead.SpendMoraleFund 'spend some money Console.WriteLine("Spent " & amount.ToString()) End Sub Public Property OurMoraleFund() As Decimal Implements ILead.MoraleFund Get Return m_MoraleFund End Get Set(ByVal Value As Decimal) m_MoraleFund = Value End Set End Property Public Sub New(ByVal theName As String, ByVal curSalary As Decimal) MyBase.New(theName, curSalary) 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 End Class