new A() 返回一个A的对象,该对象并非B的对象,所以(B)(new A())发生ClassCastException。
解决方法:
A a = new B();
B b = (B)a;
b.f();
解决方法:
A a = new B();
B b = (B)a;
b.f();
解决方案 »
- String 类的代码点和代码单元是啥意思?
- java监控程序
- 关于Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException的问题
- 求助:关于BigDecimal的除法运算
- tomcat中的realm标签怎样实现容器的安全管理?如何进行使用?怎样测试?
- JAVA程序如何使用多个代理服务器
- 反射技术的光芒好强 求解决方法
- applet 和servlet 通信 的错误
- 一个很简单的问题,来帮帮忙哥们!(解决立即放分,在线等待!)
- Android listview增加footerview后,footerview不在屏幕最下方显示,而是如果在listview的item后面显示
- 关于jdialog的模式!
- 在一个包中导入另外一个包中的类,编译出错--导入的包无效!!!急,请教!
如果这样执行的话,b当中怎么会有f1()这个方法呢,所以b也就产生错误了我认为,上溯造型 可以用来方便的传递对象
比如:a1,a2,a3都继承了A,那么当你想统一对a1,a2,a3进行对象传送的时候(比如作为方法的参数),就可以上溯造型为A。那么下塑造型就可以在具体的函数内部,把你刚刚上溯造型后的对象恢复回来,再依次按照不同的对象进行处理。
单单使用下溯造型是不对的。父类怎么可能知道子类的实现方法呢?B b= (B)(new A());本身就是违反设计模式的。
B b = (B)(new A());
A怎么可能是B的一个实例呢?