所以情况就是如此。我有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),永远不会被使用!
答案 0 :(得分:1)
您可以随意在基类和派生类中放置您想要的任何成员;没有什么可以阻止你这样做。您希望如何使用这些类取决于您。如果您需要 B
类中A
个实例的集合,那么这很好,或者您需要DB
个DA
个类的集合那也没关系。
您也可以对其进行编码,以便在将DB
的实例添加到DA
类中的集合时,将该实例添加到基类'({{ 1}})集合,这是正常的,因为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
中存储一个集合。
这完全取决于您希望如何使用您的课程 - 您的具体需求是什么。