有两个类Person,Chinese,其中Person继承Chinese,
假如在Mian方法中Person p=new Chinese();
问这个p对象属于哪个类的对象?
假如在Mian方法中Person p=new Chinese();
问这个p对象属于哪个类的对象?
解决方案 »
- Flex+Spring配置,destination 未定义
- 【weblogic】问题
- 在j2ee中, 怎样用sql语句查询象近一天这样的时间间隔的记录
- 求dao-hibernate-1.0.0.jar包的源码 好心人发一份给我
- 关于TCP通信的一些疑问
- NHibernate 现在能连接sql2008么
- hibernate怎么求两列相乘之和呢
- 【想做一个生成报表的程序供shell调用】
- 求助,一条语句出错!
- 是这样的, 我用的是J2SDKEE的自己带的: deploytool来对EJB进行配置的
- 图片转码问题,help!
- 请问为什么我在非action的类中使用spring自动装配的dao会出现NullPointerException?
假如在Mian方法中Person p=new Chinese();
问这个p对象属于哪个类的对象?p指向的是Chinese的,是向上转型,会丢失属性和方法,这样子 p不能访问Chinaese中的属性或方法,如果要访问的话需要强制转换,即向下转型,属于不安全的
就好比一个身份证对应一个实际的人
比如:Person p=new Chinese();编译不会报错,
如果:Person p1=new Person ();
Chinese c=(Person)p1;结果编译的时候就报错啦
ClassCastException对象强制类型转换出错
这是什么情况啊
p对象当然指向的是一个Chinese的引用。就是说p指向的是一个Chinese对象,但是由于p是Person形式的引用,所以只能通过p访问它所引用对象中在Person类中定义的方法和属性。使用 System.out.println(p instanceof Chinese);返回的是true