继承的问题
A a=new A();//a对象的属性s="[a]"
B b=new B();//b对象的属性s="[b]",同时它也继承A类的属性s="[a]"
a.s="[aa]";//将a对象的属性s赋值为"[aa]"
b.s="[bb]";//b对象的属性s赋值为"[bb]"
a=b;//将b对象的地址赋给a,a中存放的是b对象的地址,这时等同于指针,同时
它也拥有b对象的所有属性.既b对象的属性s="[bb]",和b对象继承A类的属
性s="[a]"
System.out.println(a.s);//因为a对象指向b象,a.s调用的是b对象中继承A类
的属性s="[a]"
System.out.println(b.s);//b.s调用的是b对象本身类(B类)中的s="[bb]"
System.out.println(a.gets());
System.out.println(b.gets());//因为a对象指向b对象,这两条语句的效果是
一样的都是调用的B类中的gets()方法,返回的是本类中的s属性值为"[bb]"
((A)b).s="[aa]";//同上面一样,这里只是改变了B类继承A类的s="[a]"的值改
为了"[aa]",而本类里的s="[bb]"的属性值没有改变
System.out.println(a.s); //下面的运行方式和上面的是一样的,就不用多说了
System.out.println(b.s);
System.out.println(a.gets());
System.out.println(b.gets());
其实你如果把两个s的名称换成不一样的很容易看出来的!