首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为何无法输出?解决方案

2012-01-08 
为何无法输出?classA{Stringa classA }classBextendsA{Stringb calssB }publicclassExam3_17{publ

为何无法输出?
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();
他才能
这样转

热点排行