将子类对象传递给具有超类参数的方法时会发生什么?

问题描述 投票:0回答:1

我正在尝试将子类对象传递给具有超类参数的方法,因此我只需要创建一个该方法。我有条件语句,如“if(subclassObject instanceOf CertainSubClass)”,因此它可以告诉对象来自哪个子类。

问题是一旦将对象传递给参数,程序似乎只将其识别为超类对象。然后我无法将其添加到ArrayList<CertainSubClass>类型的ArrayList中。

当子类对象传递给具有超类参数的方法时,它究竟发生了什么?我怎么能解决这个问题呢?我宁愿不为我拥有的3个子类制作3个方法。谢谢

java inheritance methods subclass superclass
1个回答
1
投票

“我宁愿不为我拥有的3个子类制作3个方法。”

但是如果你的进程对于每种情况都不同(并且你的实例检查会这样做)那么你在语义上有3种不同的方法。为了保存一些方法声明,将它们捆绑在一个方法中是一个糟糕的主意。

© www.soinside.com 2019 - 2024. All rights reserved.