VB.Net中的组成和继承

程序员

情况就是这样。我有A类和B类。A类中有一个成员,即B类

Public Class A
    public _lstB as list (of B)
    public sub new()
        _lstB = B.Init()
    end sub
end Class

Public Class B
    public shared sub Init() as list (of B)
        ....
    end sub
End Class

我想做的就是为A和B创建一个派生类(让我们说DA和DB)。我希望将成员B替换为DA中的DB。这可能吗?

Public Class DA
    inherits A
    public _lstDB as list (of DB)

    public sub new()
        mybase.new 
        _lstDB = DB.Init()
    end sub
end Class

Public Class DB
    inherits B
    public shadows shared sub Init() as list (of DB)
        ....
    end sub
End Class

我完全确定这是要走的路,因为在致电

mybase.new 

将在基类中创建一个完整的列表(B列表),该列表永远不会被使用!

rory.ap

您始终可以将所需的任何成员放到基类和派生类中。没有什么可以阻止您这样做。您要如何使用这些类由您决定。如果您需要类中B实例集合A,那么很好,或者如果您需要中的DB集合DA,也很好。

您也可以对其进行编码,以便在将类的实例添加DB到集合中的DA实例时,将该实例添加到基类的(A)集合中,因为DB从派生,所以可以B例如,如果您在中具有此方法A

Public Overridable Sub AddNew(item As B)
    _lstB.Add(item)
End Sub

和此方法在DA

Public Overrides Sub AddNew(item As B)
    MyBase.AddNew(item)
End Sub

这样一来,您只会在基类中存储一个集合A

这完全取决于您要如何使用您的类-您对设计的特定需求是什么。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章