一段JAVA代码,不太明白其中的含义,请大家帮帮忙
public class ploytest
{
public static void main(String[] args)
{
A a = new A();
B b = new B();
a.s = "[AA] ";
System.out.println(a.s);
b.s = "[BB] ";
a = b;
System.out.println(a.s);
System.out.println(b.s);
System.out.println(a.getS());
System.out.println(b.getS());
System.out.println( "==================== ");
((A)b).s = "[AA] ";
System.out.println(a.s);
System.out.println(b.s);
System.out.println(a.getS());
System.out.println(b.getS());
}
}
class A
{
String s = "[A] ";
String getS()
{
return s;
}
}
class B extends A
{
String s = " ";
String getS()
{
return s;
}
}
我看到的输出结果如下:
[AA]
[A]
[BB]
[BB]
[BB]
====================
[AA]
[BB]
[BB]
[BB]
具体是怎么执行的呢?有哪位大哥可以给讲解一下不?
------解决方案-------------------- A a = new A(); //a.s= "[a] "
B b = new B(); //b是继承的,父类s= "[a] ",子类s= " "
a.s = "[AA] "; //a.s= "[aa] "
System.out.println(a.s);
b.s = "[BB] "; //b子类s= "[bb] "
a = b; //a指向b的对象
System.out.println(a.s); //a.s就是b的父类s= "[a] "
System.out.println(b.s); //b的子类s= "[bb] "
System.out.println(a.getS()); //调用的是子类getS,返回子类s= "[bb] "
System.out.println(b.getS()); //调用子类getS,返回子类s= "[bb] "
System.out.println( "==================== ");
((A)b).s = "[AA] "; //b的父类s= "[aa] "
System.out.println(a.s); //b父类s
System.out.println(b.s); //b子类s
System.out.println(a.getS()); //调用子类getS,返回子类s= "[bb] "
System.out.println(b.getS()); //调用子类getS,返回子类s= "[bb] "