gpt4 book ai didi

java - 从抽象类层次结构中获取正确的字段?

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

我有一个抽象类 A

public abstract class A{
private int x;
public void doSomethingToX{...};
public int getX(){
return x;
}

我有 7 个扩展 A 的类,这 7 个类中的每一个都以相同的方式实现 doSomethingToX,所以我在类 A 中定义它。如果类 B 扩展 A,我调用 B.doSomethingToX(),然后调用 B .getX(),我会得到 B 的 X 值还是 A 的值?

在我的真实程序中,我有一个 A 对象的 ArrayList

ArrayList<A> list;

我打电话:

  list.add(new B());
list.get(index).doSomethingToX();
list.get(index).getX();

我会得到 A 的 x 还是 B 的结果?

最佳答案

如果您不在扩展类上重写 getX(),您将从 A 中获得 x。

如果您重写 getX(),您将获得重写方法返回的值。

示例:

A a = new B(); a.getX();
B b = new B(); b.getX();

以上所有行都将返回在 B 类上重写的 getX() 的值。

如果 B 类上没有重写此方法,那么您将获得 A 类上定义的值。

关于java - 从抽象类层次结构中获取正确的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16553737/

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