java - 其类中的子类列表

标签 java oop

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

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

现在这对我们来说变得非常困惑,Copy 应该扩展 BookMagazine,并且这两个必须有一个 ArrayList复制到它们里面。

我很抱歉问题中缺乏具体说明,但我们在父类(super class)中实现子类列表的问题上绝对陷入困境和困惑。

最佳答案

根据您的描述,似乎 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;
}

关于java - 其类中的子类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061662/

相关文章:

java - 按返回类型或参数组织方法?

java - 如何覆盖 Activity 中按下后退的共享元素平滑过渡?

java - 牛顿平方根Java程序

java.net.MalformedURLException java.net.URL.<init>(来源未知)

OOP-如何在ReasonML中创建一个类

c# - 在 C# 中,希望命名空间是内部的有任何意义吗?

oop - 为什么协议(protocol)的关联类型在 Swift 中不使用泛型类型语法?

java - Tomcat 服务器未加载网络打印机

java - @DatabaseSetup 无法加载数据集

python - 在两个属性中拆分类属性