vb.net - 继承类的对象聚合

时间:2012-05-18 08:34:17

标签: vb.net object-design object-composition

我正在玩几个物体的组合。

我有两个班级(注意和任务)。 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()

最终的子注释对象实际上是一项任务,我该如何使这种聚合工作?我不在乎它是一个笔记还是一个任务,但我想释放基础或扩展类的功能。

我的直接想法是每个对象都需要有一个任务列表和一个笔记列表,但感觉可能有一个更优雅的解决方案。

有人对此有任何想法吗?

2 个答案:

答案 0 :(得分:0)

如果我理解正确的话,你应该用我们的C#人调用虚方法/属性来实现你的类的行为......基本上他们使用后期绑定调用,以便从正确的类调用适当的功能 - 是父类或派生类。

我认为VB.Net等值是“Overrideable”和“Overrides”。

答案 1 :(得分:0)

你的Note对象集合应该已经为你提供了你想要的东西。

如果你需要区分Note和Task,你可以询问实例是否是'typeof'任务,然后适当地转换以获得派生属性和方法。

如果你需要的方法和属性是基类的一部分,你不需要强制转换,你可以依靠多态来调用类型相应的方法/属性。