父类对象能强制转化为子类对象么? 如: Class A Extends B;这样能有错么: A a=(A)new B();我调试了下编译没有问题但是运行报错到底是怎么回事情呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 假如A中有setP();函数,而父类没有,运行当然不能正常了。这类转换最好不用,除非先用 instanceof判断一下。例如if (b instanceof A){ A a = (A)b;} 不能的编译时是可以通过但是运行时会抛出ClassCastException异常 A a=(A)new B();这样显然有问题洒B a= new A(); 类型转化是可以的,但是你要保证强制转换的类是正确的,你的例子中将B 转化成A ,不正确,所以运行出错。(A 转成B 是可以的,因为A is a B) 编译时强制转换是可以的,但是运行期会出现不可预期的错误个人认为可以简单的理解成A是B,但是不可以说B是A,因为B可能比A多些东西 java doc 的生成? 系统移植到另一电脑上,出现了问题! 数据库查询桥接不上 请帮忙编写一下程序,给分!!! 菜鸟两问 为什么我的问题很少有人能答的清楚? 利己线程?? 到底该用哪种Java编辑器好呢? 当提示有这样的错误信息是什么错误? 怎样生成Microsoft Word文档,并向word文档里写东西? java能写操作系统吗 java实现telnet到交换机上时返回值是????,请问如何解决?(代码见内)
运行当然不能正常了。
这类转换最好不用,除非先用 instanceof判断一下。例如
if (b instanceof A){
A a = (A)b;
}
编译时是可以通过
但是运行时会抛出ClassCastException异常
B a= new A();
个人认为可以简单的理解成A是B,但是不可以说B是A,因为B可能比A多些东西