为什么强迫父类转换成子类会出错!
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》》动物是狗当然错了,
狗是动物才行~~~~
------解决方案--------------------子类有的东东父类不一定有,所以父转不了子
父类有的东东子类都拿来了,所以子能转父