繁体   English   中英

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

[英]What happens when a subclass object is passed to a method with a superclass parameter?

我试图将子类对象传递给具有超类参数的方法,因此我只需要使该方法之一。 我有条件语句,例如“ if(subclassObject instanceOf SpecificSubClass)”,因此它可以判断对象来自哪个子类。

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

将子类对象传递给带有超类参数的方法时,到底发生了什么? 我该如何解决这个问题? 我不想为我拥有的3个子类制作3种方法。 谢谢

“我不想为我拥有的3个子类使用3种方法。”

但是,如果你的过程是每个案例不同的(和你的instanceof检查将使它如此),那么你 3种不同的方法,在语义上。 仅为了保存一些方法声明而将它们捆绑在一个方法中是一个糟糕的主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM