public class Demo2 {public static void main(String[] args) {
// TODO Auto-generated method stub
A a = new A();
a.s = 11;
B b = new B();
b.s = 22;
a = b;
System.out.println(a.s);
System.out.println(b.s);
System.out.println(a.getS());
System.out.println(b.getS());
}}class A {
int s = 1;int getS() {
return s;
}
}class B extends A {
int s = 0;int getS() {
return s;
}
}
// TODO Auto-generated method stub
A a = new A();
a.s = 11;
B b = new B();
b.s = 22;
a = b;
System.out.println(a.s);
System.out.println(b.s);
System.out.println(a.getS());
System.out.println(b.getS());
}}class A {
int s = 1;int getS() {
return s;
}
}class B extends A {
int s = 0;int getS() {
return s;
}
}
B继承了A new B();的时候 里面会有两个s 一个是b本身的this.s=0 一个是父类a的super.s=1
b.s=22; 将this.s变成22
由于你 a=b;
所以 你输出的a.s 调用的相当于 super.s=1
继承 的原理多看看 等待楼下更好答案