其类中的子类列表

时间:2015-05-05 19:30:45

标签: java oop

这里的背景是图书馆系统的学校项目,图书馆有杂志和书籍。

我们有一个抽象类Register,它由BookMagazine扩展。现在需要实现一个Copy类,可以用于书籍和杂志,其中包含返回日期,所有者,yadda yadda。

现在这对我们来说非常混乱,Copy应该扩展BookMagazine,这两个必须在其中包含副本的ArrayList。

我很抱歉问题中缺乏预期,但我们对在其超类中实现子类列表的问题感到困惑和困惑。

1 个答案:

答案 0 :(得分:2)

根据您的描述,似乎Copy类不应扩展任何这些类,而是与Register建立关联,如下所示:

public class Copy {
    Register original;
    Register copy;
}

通过这种方式,您可以了解原始Register实例及其副本。上述设计的问题在于您可以拥有类型为Book的原件和类型为Magazine的副本,或者反之亦然。要解决此问题,您可以使用泛型:

public class Copy<T extends Register> {
    T original;
    T copy;
}

然后,在Book课程中,您可能会遇到以下情况:

public class Book {
    List<Copy<Book>> copies;
}