【发布时间】:2014-11-06 03:13:02
【问题描述】:
考虑以下代码示例,有人可以帮助解释为什么B b3= new B (20, 50) ;的结果System.out.println(b3);是A:20, B:(10, 61) 吗?我想通过调用super (x),我们使用A(int x) {this x =x;},并且B的int x已更改为20。
PS:我正在寻找它如何工作的原因,而不是如何在 B 中打印出某些值。
class A {
int x;
A(int x) {
this.x = x;
}
public String toString() {
return "A:" + x;
}
}
class B extends A {
int x = 10;
int y = x+1;
B(int x, int y) {
super(x);
this.y = this.y + y;
}
public String toString() {
return "A:" + super.x + ", B:(" + x + "," + y + ")";
}
}
【问题讨论】:
标签: java class inheritance constructor super