【发布时间】:2021-09-19 02:41:31
【问题描述】:
假设我有一个包含 5 个类的 java 代码:
class a = superclass.
class b = class that inherits a methods and have others.'''
class c = class that inherits a methods and have others.'''
class d = class that have an array (lets call "arrayA") of class a objects and other methods(like addObjectToArray).
class e = main.
我的疑惑是:
- 有没有办法将 B 或 C 对象添加到 arrayA 以维护此类(B 或 C)的所有不同变量和方法?
- 如果我想在主代码中将 B 对象添加到 arrayA(调用 addObjectToArray),然后在主代码的某些部分中识别对象是哪个类(如果是 a、b 或 c),甚至在 d 类中识别它(假设我已初始化并且一切正常。我现在只是在操作数组)我该怎么做?
- 有没有办法在arrayA上调用只存在于b类或c类中的方法?怎么样?
如果我不够清楚,我会稍后发布代码。但我也要求提供一些参考来研究对象数组和继承一起操作。
【问题讨论】:
-
"class c = 继承 c 方法的类"
-
是的。它应该是继承方法的类。我会纠正的。
-
一个最小且可重现的代码示例比试图用文字表达一切要好,而且 IMO
class a {String x;} class b extends a { int y;}更容易理解。 -
我建议阅读有关 Liskov 替换原则的内容。这是一种有助于解决这些情况的设计原则。