情况就是这样。我有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列表),该列表永远不会被使用!
您始终可以将所需的任何成员放到基类和派生类中。没有什么可以阻止您这样做。您要如何使用这些类由您决定。如果您需要类中的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] 删除。
我来说两句