public class A{
public int a;
public A(){ }
public A(int a){
this.a=a;
}
public int getA(){ return a; }
public void setA(int a){ this.a=a; }
}public class B extends A{
public B(int a){
super(a);
}
public void showQuestion(){
System.out.println("未修改之前:"+this.a);
this.setA(2);
System.out.println("修改之后:子类"+this.a);
System.out.println("修改之后:父类"+super.a);
super.setA(3);
System.out.println("修改之后:子类"+this.a);
System.out.println("修改之后:父类"+super.a);
}
}
我的问题是,为何无论用this修改a的值还是用super修改a的值 最后它俩的值都是一样的呢?难道它俩地址一样吗 还是子类用的是父类a的复本,还是一直调用的就是父类的a 这些情况我也只是猜测……不要骂我 希望高手指点一二
public int a;
public A(){ }
public A(int a){
this.a=a;
}
public int getA(){ return a; }
public void setA(int a){ this.a=a; }
}public class B extends A{
public B(int a){
super(a);
}
public void showQuestion(){
System.out.println("未修改之前:"+this.a);
this.setA(2);
System.out.println("修改之后:子类"+this.a);
System.out.println("修改之后:父类"+super.a);
super.setA(3);
System.out.println("修改之后:子类"+this.a);
System.out.println("修改之后:父类"+super.a);
}
}
我的问题是,为何无论用this修改a的值还是用super修改a的值 最后它俩的值都是一样的呢?难道它俩地址一样吗 还是子类用的是父类a的复本,还是一直调用的就是父类的a 这些情况我也只是猜测……不要骂我 希望高手指点一二
你说得对,地址是一样的