gpt4 book ai didi

java - java中的实例变量继承

转载 作者:行者123 更新时间:2023-12-01 17:58:41 24 4
gpt4 key购买 nike

class Weather{
int humidity;
//default value is 0;
}

class Rainy extends Weather{



void changeHumidity(){
humidity = 10;
System.out.println("The humidity is " + super.humidity);
}


}

public class Test{
public static void main(String[] args){
new Rainy().changeHumidity();
System.out.println(new Weather().humidity);
}
}

这里的输出是:湿度为 10 且0

为什么super.humidity返回10。我知道实例变量不是继承的,但它们可以在子类中访问。如果它们可以在子类中访问,那么这是否意味着它们在父类(super class)和子类或两者之间共享父类(super class)和子类有不同的副本。现在要问为什么 super.humidity 返回 10 但在下一行它返回 0。请明确我的概念。

最佳答案

在Rainy类中不存在字段湿度,因此该类使用父类字段进行初始化

如果您在子类中声明湿度字段,请更改该字段,但打印父类字段

关于java - java中的实例变量继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42592348/

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