gpt4 book ai didi

java - Java中调用子类方法

转载 作者:行者123 更新时间:2023-12-01 16:06:14 25 4
gpt4 key购买 nike

鉴于以下情况(下面的 UML),

如果 Y 有方法:

public void PrintWs();

X 有:

ArrayList <P> myPs = new ArrayList();

Y y = new Y();
Z z = new Z();
myPs.add(y);
myPs.add(z);

如何循环遍历每个 myPs 对象并调用所有 Ys PrintWs(不使用 instanceof)?

http://starbucks.mirror.waffleimages.com/files/68/68c26b815e913acd00307bf27bde534c0f1f8bfb.jpg

抱歉,澄清一下:

  • Z 包含 1 个 Y 对象。
  • Y 和 Z 都是 P 的子类
  • 刷新一下图片似乎就可以了 - 我的声誉太低,无法上传图片,所以当我获得 15 分时我会进行编辑:)

最佳答案

您不能 - 假设您只想尝试在 Y 的实例上调用 PrintWs,您需要确定哪些引用指向 Y 的实例...这就是您使用 instanceof 的地方。 (您可以使用Y.class.isInstance(p),但这只是同一件事,但形式略有不同。)

当然,如果您可以使 P 包含一个无操作 PrintWs ,然后在 Y 中覆盖它,那么您可以在列表中的所有内容上调用它...

关于java - Java中调用子类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com