2011-09-13 67 views
0

我有以下結構:實例從父類的元素

-parent

--CHILD

--CHILD

--CHILD

--CHILD

非常直截了當。現在,我需要PARENT類具有諸如createNewChild(id)之類的功能。父元素有每個孩子必須重寫以下:

Public MustOverride Function getId() As Integer 

現在,是有可能在運行時獲得了父母的所有可用的兒童的列表,以便我能做到這一點?對不起,如果這聽起來令人困惑,我很難解釋這一點。

基本上不過,我希望能夠做到以下幾點:

Dim nParent as PARENT = PARENT.createNewChild(5) 

任何想法?我正在使用VB.net,因此任何.net答案都可以接受。謝謝!

回答

1

那麼,我唯一能想到的就是跟蹤你的父類的孩子,就是在創建時創建一個孩子列表。

Class Parent 
    Private Shared childList As New List(Of Child)() 

    Public Sub CreateNewChild(id As Integer) 
     Dim newChild As New Child(id) 
     childList.Add(newChild) 
     Return newChild 
    End Sub 

    Public Overridable Function GetID() As Integer 
     Return 0 
    End Function 

    Public Shared Function GetAllChildren() As List(Of Child) 
     Return childList 
    End Function 
End Class 

Class Child Inherits Parent 
    Private m_ID As Integer 
    Public Property ID() As Integer 
    Get 
     Return m_ID 
    End Get 
    Set 
     m_ID = Value 
    End Set 
End Property 

Private Sub New(id As Integer) 
    Me.ID = id 
End Sub 
End Class 

很抱歉的代碼,我原來寫在C#和使用的在線轉換器轉換到VB。