[英]subclass not updating variable taken from base class
为什么我的输出没有给出预期的结果,即25
? 我知道我的问题很愚蠢,但是我是Java编程的新手。 输出是
run:
5
0
0
BUILD SUCCESSFUL (total time: 0 seconds)
但是根据我的预期,当我在辩论中通过5分时,预期的答案是5。
class A {
int a;
public void setA(int a) {
this.a = a;
}
}
class B extends A {
public int multi() {
int multi = a * a;
System.out.println(multi);
return multi;
}
}
class test {
public static void main(String[] args) {
A obj1 = new A();
obj1.setA(5);
B obj2 = new B();
int c = obj2.multi();
System.out.println(c);
}
}
为什么输出没有给出预期的结果,即25
因为您有两个不同的对象,每个对象都有一个独立a
字段。 您在一个对象中将值设置为5,然后在另一个对象上调用multi()
,因此它使用字段的默认值(0)。
如果两个部分都使用相同的对象,则会得到正确的答案:
B obj2 = new B();
A obj1 = obj2; // Now obj1 and obj2 refer to the same object
obj1.setA(5);
System.out.println(obj2.multi());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.