【发布时间】:2021-04-08 20:11:51
【问题描述】:
我目前正在为一个学校项目开发一个基本的光盘信息管理系统,用户可以在其中添加/删除光盘信息。规格中提到了两种类型的光盘,音乐和游戏。它们都有一些共享属性,所以我创建了一个名为Disc 的超类,它有两个子类Music 和Game 将继承这些共享属性的光盘。规范还规定,两种类型的光盘都需要一个可维护的列表,因此无论用户选择添加音乐还是游戏,它都会被添加到一个 DiscInfo 列表中。
我的问题是,如何定义两个对象的列表?子类的对象也是超类的对象吗,所以我可以创建一个Disc 对象列表,其中可以添加/删除Music 或Game 对象?
我是 OOP 的新手,所以我对类和对象的理解非常初级,我可能想错了。希望我的问题有意义。
【问题讨论】:
-
如果这是您的问题,
List<Disc>可能同时包含Music和Game对象。 -
这正是我要问的,谢谢!
-
在阅读时,可以使用
getClass()或instanceof之类的类型检查来处理细节。或者,您像这样创建一个enum:public enum DiscType {MUSIC, GAME},并将其作为Disc类中的附加成员变量。如果您必须区分许多子类,这与switch语句结合通常是最快的,而且它也比类型检查更容易和更便携。
标签: java list oop object subclass