为何无法输出?
class A{
String a= "class A ";
}
class B extends A{
String b= "calss B ";
}
public class Exam3_17{
public static void main(String args[]){
A a1,a2=new A();
B b1,b2=new B();
a1=b2;
b1=(B)a2;
System.out.println(a1.a);
System.out.println(b1.b);
}
}
------解决方案--------------------只有父类对象才可以用它的子类对象来代替。而你恰恰写反了。
A a3 = new B();
System.out.println(a3.a);
------解决方案--------------------b1=(B)a2;这一句不对啊,怎么能将指向子类对象的引用指向父类。这样的转化不对除非
a2 instanceof B
即
A a2 = new B();
他才能
这样转