Betrachten Sie den folgenden Code überschrieben wurde:Von Child Instanz Aufruf Basisklasse Methode, die
Public Class Animal
Public Overridable Function Speak() As String
Return "Hello"
End Function
End Class
Public Class Dog
Inherits Animal
Public Overrides Function Speak() As String
Return "Ruff"
End Function
End Class
Dim dog As New Dog
Dim animal As Animal
animal = CType(dog, Animal)
// Want "Hello", getting "Ruff"
animal.Speak()
Wie kann ich konvertieren/die Instanz von Hund zu Tier ctype und haben Animal.Speak genannt werden?
„Eine weitere Alternative ist das Objekt als ein Tier, zu erklären, und es dann zu einem Hund werfen, wenn Sie den Hund erweiterte Eigenschaften benötigen . " Dieser letzte Teil ist nicht wahr. Der deklarierte Typ der Variablen ist bedeutungslos, wenn es darum geht, wie sich eine gegebene Instanz polymorph verhält. –
Das stimmt, ich habe in Bezug auf Schnittstellen gedacht. –