Generics VB.Net

Public Class MainClass
   Public Shared Sub Main()
        Dim talker1 As New GenericTalker(Of Dog)()
        talker1.Talker = New Dog()
        talker1.sayHello()
        Dim talker2 As New GenericTalker(Of Cat)()
        talker2.Talker = New Cat()
        talker2.sayHello()
   End Sub
End Class
Public Class GenericTalker(Of T)
    Public Talker As T
    Public Sub SayHello()
        Dim helloWorld As String
        helloWorld = Talker.ToString()
        Console.WriteLine(helloWorld)
    End Sub
End Class
Public Class Dog
    Public Overrides Function ToString() As String
        Return "Dog!"
    End Function
End Class
Public Class Cat
    Public Overrides Function ToString() As String
        Return "Cat"
    End Function
End Class
Public Class Mouse
    Public Overrides Function ToString() As String
        Return "Mouse"
    End Function
End Class
Public Class Person
    Public Overrides Function ToString() As String
        Return "Person"
    End Function
End Class