Class VB.Net

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