java - 将两个子类的对象存储在同一个 Vector/List 中
问题描述
我目前正在为一个学校项目开发一个基本的光盘信息管理系统,用户可以在其中添加/删除光盘信息。规格中提到了两种类型的光盘,音乐和游戏。它们都有一些共享属性,所以我创建了一个超类Disc
,它有两个子类Music
和Game
继承这些共享属性的磁盘。规范还规定,两种类型的光盘都需要一个可维护的列表,因此无论用户选择添加音乐还是游戏,它都会被添加到一个DiscInfo
列表中。
我的问题是,如何定义两个对象的列表?子类的对象也是超类的对象吗,所以我可以创建一个Disc
对象列表,可以在其中添加/删除一个Music
或多个对象?Game
我是 OOP 的新手,所以我对类和对象的理解非常初级,我可能想错了。希望我的问题有意义。
解决方案
如果您的列表大小已知,您可以使用数组类型,但您也可以使用列表或向量。由于多态性,您可以将任何子类型 fromDisc
放入List<Disc>
推荐阅读
- javascript - MediaRecorder 'ondataavailable' 事件未触发
- c# - MainWindow 不是启动窗口时的引用实例
- inno-setup - 在 Inno Setup Pascal 脚本中评估运行时来自预处理器的数据集合
- kotlin - 如何在 onStop() 方法中取消 kotlin 协程作业
- tcl - 操作数字符串中有方括号时出现字符串匹配问题
- python - 是否可以在不循环列表的情况下将数组元素范围的值增加一个常量?
- r - 特征误差(Sigma,对称 = TRUE):MetRology uncertMC 中的 0 x 0 矩阵与 2x2 相关矩阵
- flutter - 在 vs 代码中运行原始颤振应用程序并使用 USB 调试时遇到此错误
- java - RestEntity 映射返回空对象
- reactjs - 状态 reactjs - 当我点击设置值时,我设置了所有