有两个类Person,Chinese,其中Person继承Chinese,
假如在Mian方法中Person p=new Chinese();
问这个p对象属于哪个类的对象?
假如在Mian方法中Person p=new Chinese();
问这个p对象属于哪个类的对象?
解决方案 »
- javaEE+Android培训视频教程奉献全套
- (高分求解)Spring AOP 出现Error creating bean with ..
- 【Tomcat启动出错,咱新手,望各位大虾指教一下】
- Java调用Weblogic JNDI的问题
- ActionErrors 里面的 ADD 怎么用呀?
- Spring配置置入WebService的问题(急)
- struts 验证问题 validation.xml validator.xml
- 求救如何tomcat5.0.28整合iis5.1
- 谁能给一个带smtp验证的javamail发邮件的例子
- Tomcat报Connection reset异常
- 图片转码问题,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