Imports System.Collections
Imports System.Collections.Generic
Public Class MainClass
Public Shared Sub Main()
Dim aCat As New Talker(Of Cat)(New Cat())
Dim aDog As New Talker(Of Dog)(New Dog())
aCat.TalkIt()
aDog.TalkIt()
End Sub
End Class
Public Interface ITalker
Sub Talk()
End Interface
Public Class Talker(Of T As ITalker)
Dim talkerItem As T
Public Sub New(ByVal shooterItem As T)
Me.talkerItem = shooterItem
End Sub
Public Sub TalkIt()
Me.talkerItem.Talk()
End Sub
End Class
Public Class Dog
Implements ITalker
Public Sub Talk() Implements ITalker.Talk
Console.Out.WriteLine("Dog->Talk")
End Sub
End Class
Public Class Cat
Implements ITalker
Public Sub Talk() Implements ITalker.Talk
Console.Out.WriteLine("Cat->Talk")
End Sub
End Class