gpt4 book ai didi

java - 子类变量没有隐藏父类(super class)中的变量

转载 作者:行者123 更新时间:2023-12-01 22:48:38 27 4
gpt4 key购买 nike

我刚刚了解到,如果有两个变量(一个在父类(super class)中,一个在子类中)共享相同的名称,则分配给子类中变量的值将隐藏父类(super class)中变量的值。我已经编写了一个程序来检查这一点,但输出清楚地表明任何隐藏过程没有发生还是真的发生了?如果子类隐藏了父类(super class)中的变量,那么“A.a”和“B.a”的值应该是25,对吧?请帮帮我。

注意:我是java编程新手。请详细解释您的答案。谢谢

这是代码

public class Super {
int a;

Super(int x) {
a = x;
}

}

class something extends Super {
int a;

something(int x, int y) {
super(x);
a = y;
}
}

class mainclass {

public static void main(String args[]) {

Super A = new Super(10);
something B = new something(10, 25);

System.out.println("The value of a in super class is" + A.a);
System.out.println("The value of a in sub class is" + B.a);
}
}

输出在这里:

The value of a in super class is10
The value of a in sub class is25

最佳答案

A.a 不应返回 25,因为 A 的类型是 super 类型 Super,并且没有隐藏。这就是 A.a 返回 10 的原因。

只有在B.a中隐藏了a(因为B是something类型,它扩展了Super并隐藏了a)成员 a),这就是它返回 25 的原因。

关于java - 子类变量没有隐藏父类(super class)中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24999734/

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