2012-05-18 72 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是“可覆盖”和“覆盖”。