首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >继承没有继承的属性

继承没有继承的属性
EN

Stack Overflow用户
提问于 2014-01-15 12:14:28
回答 3查看 150关注 0票数 0

我有个奇怪的问题,我想答案是否定的,但是.是否有任何方法可以通过组合继承类的而不继承

我现在得到的是这样的东西:

代码语言:javascript
复制
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继承了。有没有更快、更干净、更容易做到这一点的方法?

谢谢!

编辑:只是为了澄清:我知道我可以使用一个接口,但是由于马达的实现对所有类都是相同的,所以我想直接继承它的属性,而不必在每个有马达的类中再次实现它们。但不继承马达。

EN

回答 3

Stack Overflow用户

发布于 2014-01-15 12:18:25

我相信您可以在接口中使用属性,然后实现该接口。

看看这个question

票数 0
EN

Stack Overflow用户

发布于 2014-01-15 12:23:09

您总是可以使您的私有_motor成为一个公共属性,这样您就可以间接地访问Motor。我知道这不是你想要的。

票数 0
EN

Stack Overflow用户

发布于 2014-01-15 15:08:33

最广泛接受的解决方案(如果不是唯一的解决方案)是提取在包装Motor实例的每个类中实现的公共接口。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21137148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档