2012-05-18 71 views
0

我正在玩弄幾個對象的組合。vb.net - 繼承類的對象聚合

我有兩個類(注意和任務)。 Task類是從Note類派生的,因爲任務是一個擴展的註釋。

每個音符有一個屬性Property Child as list (of note)作爲記錄或任務可以被添加到現有的記錄或任務(因此這個「孩子」筆記可能是一個任務或筆記)

即。

dim x as new note() 

x.Child.item(0).Child.item(0).Child.item(0).description.ToString() 

最終的子註釋對象實際上是一個任務,我怎麼能使這個聚合工作?我不在乎它是一個音符還是任務,但我想釋放基本功能或擴展類。

我當時的想法是,每個對象都需要有一個任務列表和一個註釋列表,但是感覺好像可能有更優雅的解決方案。

有沒有人對此有任何想法?

回答

0

你是注意對象的集合應該已經給你你想要的。

如果您需要區分Note和Task,您可以詢問實例是否是'typeof'Task,然後適當地轉換以獲取派生屬性和方法。

如果你需要的方法和屬性是基類的一部分,你不需要進行轉換,你可以依靠多態來調用類型適當的方法/屬性。

0

如果我正確理解你,你應該用C#人稱之爲虛擬方法/屬性的類來實現你的類的行爲...實質上,他們使用延遲調用,以便從正確的類調用適當的功能 - 是父母或派生類。

我認爲VB.Net equivilent是「可覆蓋」和「覆蓋」。