我在这里有一个奇怪的问题,我想答案是否定的,但是......有没有办法继承一个类'prooperties 而不继承它,只是通过组合? / p>
我现在得到的是这样的:
Public Class Mixer
Inherits SomeOtherClass
Private _motor As Motor
Public Property Active() As Boolean
Get
Return _motor.Active
End Get
Set(ByVal value As Boolean)
_motor.Active = value
End Set
End Property
Public Property Frecuency() As Boolean
Get
Return _motor.Frecuency
End Get
Set(ByVal value As Boolean)
_motor.Frecuency = value
End Set
End Property
'More properties and functions from Mixer class, not from Motor
'
'
End Class
所以我需要类Mixer公开显示它的所有Motor属性,但我不想继承Motor,因为它已经从SomeOtherClass继承。有没有更快,更清洁,更简单的方法呢?
谢谢!
修改 只是为了澄清:我知道我可以使用一个接口,但由于Motor的实现对于所有类都是相同的,我想直接继承它的属性,而不必在每个具有Motor的类中再次实现它们...但没有继承马达。
答案 0 :(得分:0)
我相信您可以在界面中使用属性,然后实现该界面。
看看这个question
答案 1 :(得分:0)
您可以随时将私人_摩托车变成公共财产,然后您可以间接到达汽车公司。我知道这不是你所要求的。
答案 2 :(得分:0)
最广泛接受的解决方案(如果不是唯一的解决方案)是提取在包含Motor
实例的每个类中实现的公共接口。
Public Interface IMotor
Property Active As Boolean
Property Frequency As Boolean
End Interface
Public Class Motor
Implements IMotor
Public Property Active As Boolean Implements IMotor.Active
Public Property Frequency As Boolean Implements IMotor.Frequency
End Class
Public Class Mixer
Inherits SomeOtherClass
Implements IMotor
Private _motor As Motor
Public Property Active() As Boolean Implements IMotor.Active
Get
Return _motor.Active
End Get
Set(ByVal value As Boolean)
_motor.Active = value
End Set
End Property
Public Property Frequency() As Boolean Implements IMotor.Frequency
Get
Return _motor.Frequency
End Get
Set(ByVal value As Boolean)
_motor.Frequency = value
End Set
End Property
End Class