当前位置: 技术问答>java相关
有关继承的一道题目,请帮忙解答。
来源: 互联网 发布时间:2017-04-14
本文导语: class C1{ static int j=0; public void method(int a){ j++; } } class Test extends C1{ public int method(){ return j++; } public void result(){ method(j); System.out.println(j+method()); } public static void main(String args[]){ new Test()...
class C1{
static int j=0;
public void method(int a){
j++;
}
}
class Test extends C1{
public int method(){
return j++;
}
public void result(){
method(j);
System.out.println(j+method());
}
public static void main(String args[]){
new Test().result();
}
}
1. 3
2. 2
3. Compiler error at line 8
4. 1
5. 0
ans:2
请解说下,谢谢
static int j=0;
public void method(int a){
j++;
}
}
class Test extends C1{
public int method(){
return j++;
}
public void result(){
method(j);
System.out.println(j+method());
}
public static void main(String args[]){
new Test().result();
}
}
1. 3
2. 2
3. Compiler error at line 8
4. 1
5. 0
ans:2
请解说下,谢谢
|
method(j); // j=1
method() {return j++;}//先return j(1),然后再j=j+1
j+method(); //1+1 ,如果是 method()+j ,那就是1+2
method() {return j++;}//先return j(1),然后再j=j+1
j+method(); //1+1 ,如果是 method()+j ,那就是1+2
|
打印时:j=1,method()=1
因为Test类没有变量j,所以Test类是调用父类的方法,打印的也是父类的变量!
你可以试一下在Test类声明j变量,结果是不会变的。
谢谢,给分吧!
因为Test类没有变量j,所以Test类是调用父类的方法,打印的也是父类的变量!
你可以试一下在Test类声明j变量,结果是不会变的。
谢谢,给分吧!