当然可以,在Thinking in java中叫upcasting
解决方案 »
- 菜鸟问题:JMenuItem用内部类getSource监听不到
- xmpp协议三个顶层xml元素的区别
- 关于异常与多态性
- java多线程发送邮件问题
- 求大虾帮忙看一下这个IO流的问题
- 如何通过反射判断一个对象是普通单个对象,还是一个数组
- Castor JDO的中文问题,zip中文问题.解决在送满分!!!
- 实现走马灯效果的JLabel,但是有个小问题,大家一定要看看!!!!!!!!!!!!!
- 哪位先生会作tomcat和apache的整合?
- 随机24字节Byte Array通过base64编码获得32字节字符串
- 我用therad.activeCount()得到的线程总数不对?UP有分
- 如果我想在我所有的类中有一个我自已的基类行不行?
你代码
Parent p=new Parent()
Son s=(Son)p;
写的是把父类转换成了子类。 答案是不可以。
如Parent p=new Son()是可以的,反之不一定成立。如果父类对象的引用指向的实际是一个子类的对象,那么父类对象的引用可以强制转化成子类对象的引用。如:
Parent p=new Son()
Son s=(Son)p;
Son s=(Son)p;
不可以。
Son s=(Son)p;
这样转换是可以Parent p=new Parent()
Son s=(Son)p;
这样其实编译应该没有问题,不过执行要抛异常!
Parent p=new Son();
但是你在使用的时候,只能用到 Parent 里有的方法。Son特有的方法是调不到的。