当我创建我的Vehicle类的实例时,出现System.StackOverflowException。我相信这是因为我有一个对象引用了我的Car类,该类继承自Vehicle,并且它陷入了一个无限循环。System.StackOverflowException当创建类的实例
Public Class Vehicle
Public Car As New Car
End Class
Public Class Car
Inherits Vehicle
Public Sub doStuff()
'does stuff
End Sub
End Class
虽然可能是不好的做法,我有它的结构是这样,因为我需要能够从另一个文件访问doStuff()
,而无需创建Car
一个实例,像这样:
'some other file
Public Class Foo
Private Vehicle As New Vehicle
Vehicle.Car.doStuff() 'this is what I am trying to accomplish
End Class
是还有另一种方法可以实现这一目标?
编辑:由于似乎有一点混淆,我想澄清一下,我有多个继承自车辆(汽车,卡车,自行车等)的类。所有这些类都有其独特的方法,但都需要使用Vehicle的一些方法和属性。使用virtual
不是我正在寻找的,因为我不需要重写任何方法。
汽车不应该实例化汽车类,它应该是相反的方式 – soohoonigan
不知道“doStuff()”做了什么,很难说,但“我需要能够访问'doStuff()'从另一个文件不需要创建一个'Car'的实例,通常可以通过将其设置为Shared来解决 - 即'Public Shared Sub doStuff()'。然后你可以直接从'Foo'中的方法调用它:'Car.doStuff()'。 – Mark
你不只是'有一个对象参考车类'车**创建**一个**新**车实例和车继承车辆,因此无尽循环:车辆 - >车 - >车... – Plutonix