首页 > 其他 > 详细

java中的向下转型和向上转型

时间:2014-03-07 02:45:16      阅读:508      评论:0      收藏:0      [点我收藏+]

 一、   java中的向上转型,一般是使用子类实例对象初始化父类对象引用,这种方式一般是安全的,一般为隐身的转换,初始化后的对象只能调用父类的方法和属性,如接口,抽象类的实例化等大多采用这种方式。

二、而java中的向下转型,是使用父类实例对象初始化子类实例对象,这个时候就是不安全的,在向下转型时,为了保证转型的安全性要做一下两步:

1)使用instanceof进行对象判断,格式为(父类对象) instanceof  (子类名)

2) 若返回的是真,则可以进行转化,否则则不可。

三、java中getClass 和instanceof的区别

class A { }  

class B extends A { }  

Object o1 = new A();  
Object o2 = new B();  

o1 instanceof A => true  
o1 instanceof B => false  
o2 instanceof A => true // <================ HERE  
o2 instanceof B => true  

o1.getClass().equals(A.class) => true  
o1.getClass().equals(B.class) => false  
o2.getClass().equals(A.class) => false // <===============HERE  
o2.getClass().equals(B.class) => true 


java中的向下转型和向上转型,布布扣,bubuko.com

java中的向下转型和向上转型

原文:http://blog.csdn.net/chunlei_zhang/article/details/20636653

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!