父类对象能强制转化为子类对象么? 如: 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多些东西 如何捕获数据包? instanceof 运算符可以用来决定某对象的类是否实现了接口??可以吗?? java中的字符串 什么是三层模式开发啊 着急,遇到瓶颈问题,需求各位大侠帮助;请问可以在Application中调用Applet的画图方法吗? 一个困绕我多久的问题,希望大家能帮帮忙 我的结果集明明有数据,怎么不能滚动呢? 老鸟捕获超级异常! java 和数据库问题,入门者编。 javascript中的休眠等待函数是什么?在线,立即给分! java能写操作系统吗 java实现telnet到交换机上时返回值是????,请问如何解决?(代码见内)
运行当然不能正常了。
这类转换最好不用,除非先用 instanceof判断一下。例如
if (b instanceof A){
A a = (A)b;
}
编译时是可以通过
但是运行时会抛出ClassCastException异常
B a= new A();
个人认为可以简单的理解成A是B,但是不可以说B是A,因为B可能比A多些东西