我有个奇怪的问题,我想答案是否定的,但是.是否有任何方法可以通过组合继承类的而不继承?
我现在得到的是这样的东西:
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,因为它已经从SomeOtherClass继承了。有没有更快、更干净、更容易做到这一点的方法?
谢谢!
编辑:只是为了澄清:我知道我可以使用一个接口,但是由于马达的实现对所有类都是相同的,所以我想直接继承它的属性,而不必在每个有马达的类中再次实现它们。但不继承马达。
发布于 2014-01-15 12:18:25
我相信您可以在接口中使用属性,然后实现该接口。
看看这个question
发布于 2014-01-15 12:23:09
您总是可以使您的私有_motor成为一个公共属性,这样您就可以间接地访问Motor。我知道这不是你想要的。
发布于 2014-01-15 15:08:33
最广泛接受的解决方案(如果不是唯一的解决方案)是提取在包装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 Classhttps://stackoverflow.com/questions/21137148
复制相似问题