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

Novice2007 2007-07-09 12:10:36
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() {
}

}
...全文
350 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Novice2007 2007-07-09
  • 打赏
  • 举报
回复
怎么给不了分?
suncheng_hong 2007-07-09
  • 打赏
  • 举报
回复
向上转型(子类向父类)可以,向下可不行.
tdy1234 2007-07-09
  • 打赏
  • 举报
回复
LS正解
晨星 2007-07-09
  • 打赏
  • 举报
回复
那是因为a1所引用着的,本就不是个B类的对象。
子类向父类转没有问题的。因为在面向对象中,“了类就是一种父类”,而反之不成立。
insiku 2007-07-09
  • 打赏
  • 举报
回复
强迫你爸爸做你的儿子
你爸爸当然不同意 而且非常生气
说不定还要打你
wisdom_qiurui 2007-07-09
  • 打赏
  • 举报
回复
父类与子类对象编程规则(赋值兼容原则---向上转换upcasting):
子类的对象可当着父类的对象来使用,但反之则禁止。因为子类对父类加以扩充,因而包含有父类的成员。
kang_2008 2007-07-09
  • 打赏
  • 举报
回复
子类的细节 父类不一定有
terriou786 2007-07-09
  • 打赏
  • 举报
回复
子类有的东东父类不一定有,所以父转不了子
父类有的东东子类都拿来了,所以子能转父
dreaming_java 2007-07-09
  • 打赏
  • 举报
回复
TO》》动物是狗当然错了,
狗是动物才行~~~~
liuliu20036 2007-07-09
  • 打赏
  • 举报
回复
父类不一定是子类,子类一定是父类,因为他们是单向继承关系
codeartisan 2007-07-09
  • 打赏
  • 举报
回复
1楼厉害
mimanginging 2007-07-09
  • 打赏
  • 举报
回复
如果 a1被声明为B类,就可以这样转了
A a1 = new B();
B b1 = new B();

b1=(B)a1;

zhao_tk 2007-07-09
  • 打赏
  • 举报
回复
1 L描述的生动

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧