【问题标题】:The Limits of Inheritance (Java) [duplicate]继承的限制(Java)[重复]
【发布时间】:2014-08-06 17:01:17
【问题描述】:

我对 Java 的 OOP 理论还很陌生,但我有这个问题

我正在自己制作一些东西,我想为一个包含不同东西的游戏创建一个库存,例如食物、药水、武器、盔甲、配饰等,所以我决定使用数组或 @ 987654321@s。

当我听说ArrayLists 使用<> 中的类作为参数时,我想到了一件事。如果我有一把属于自己的剑,然后我有一个属于自己的药水,他们将无法在同一个ArrayList中使用,对吧?

但是如果剑和药水都是一个名为“Object”的更大类的子类,它封装了冗余方法(我的意思是它们共有的所有方法),那么子类只需要专注于某些事情,比如,药水治疗,剑增加伤害。那么如果我将ArrayList 定义为使用Object 类型的类,那么ArrayList 会欢迎剑和药水进入列表,对吧?一个类可以从其他类继承多少次?有限制吗?

【问题讨论】:

  • "一个类可以从其他类继承多少次?"取决于您所说的“多少次”。类只能extend 另一个类,但继承层次结构可以任意深。老实说,我不太确定您在问题的其余部分中要问什么……有些段落可能会很好。此外,从表面上看,您的问题的前三分之一之类的内容可能会被删去,而您的问题不会失去任何意义。
  • tl;dr(太长;没读过)
  • 在可行的情况下使用接口而不是继承。
  • 哦,例如 Object 是父类,它包含图标、图像、名称和坐标变量的方法,子类(扩展它)具有执行某些特定任务的方法,例如造成伤害或治愈,现在的问题是,其他类是否也可以扩展子类,并且仍然可以从主类对象和以前的对象中受益?对象 --> 设备 ---> 阔剑 --> 铁阔剑。
  • @ChrisJester-Young 哎呀,我忘了怎么学英语了。谢谢。

标签: java arrays oop


【解决方案1】:

您不会遇到任何限制。创建一个名为 InventoryItem 之类的顶级类并从中继承。还可以考虑使用 List 接口和 ArrayList 作为实现。它比数组更容易使用,因为您可以添加/删除项目而不必担心空槽。我可能会创建一个名为 Inventory 的类来隐藏数组。

【讨论】:

  • 谢谢戴夫!很有帮助!
猜你喜欢
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
相关资源
最近更新 更多