在C#中我们可以这样做:
Honda a = new Car(); 这工作,但同样的一个在Visual Basic.NET中不起作用(我是Visual Basic的新手)
Dim a as Honda = new Car 并且它表示无法将"SampleApp.Car"类型的对象转换为"SampleApp.Honda"类型.
这有什么不对?
这是我的示例代码:
Module Module1
Sub Main()
Dim a As B = New A
Console.WriteLine(a.DoSOmething())
Console.ReadLine()
End Sub
End Module
Class A
Public Overridable Function DoSOmething() As String
Return "SOmething"
End Function
End Class
Class B
Inherits A
Public Overrides Function DoSOmething() As String
Return "Something else"
End Function
End Class
Run Code Online (Sandbox Code Playgroud)
本田比汽车更具体,可能包括其他功能或行为.你可以毫无问题地将一辆本田汽车投入汽车,但不能将汽车投入本田.
编辑:例如,本田可能包含ActivateVTEC方法,而所有汽车都有加油方法,所以如果你能够创建一辆本田=新车,ActivateVTEC将是未定义的.