日期:2014-05-20  浏览次数:20674 次

为什么强迫父类转换成子类会出错!
package   chapter3;

public   class   A   {
        public   A()   {
        }

        public   static   void   main(String   argv[])
                              {

                              A   a1   =   new   A();
                              B   b1   =   new   B();
                             
                                  b1=(B)a1;

                          }
}

package   chapter3;

public   class   B   extends   A{
        public   B()   {
        }

}


------解决方案--------------------
强迫你爸爸做你的儿子
你爸爸当然不同意 而且非常生气
说不定还要打你
------解决方案--------------------
那是因为a1所引用着的,本就不是个B类的对象。
子类向父类转没有问题的。因为在面向对象中,“了类就是一种父类”,而反之不成立。
------解决方案--------------------
LS正解
------解决方案--------------------
向上转型(子类向父类)可以,向下可不行.
------解决方案--------------------
1 L描述的生动
------解决方案--------------------
如果 a1被声明为B类,就可以这样转了
A a1 = new B();
B b1 = new B();

b1=(B)a1;


------解决方案--------------------
1楼厉害
------解决方案--------------------
父类不一定是子类,子类一定是父类,因为他们是单向继承关系
------解决方案--------------------
TO》》动物是狗当然错了,
狗是动物才行~~~~
------解决方案--------------------
子类有的东东父类不一定有,所以父转不了子
父类有的东东子类都拿来了,所以子能转父