首页 > 代码库 > 向上转型,向下转型
向上转型,向下转型
向上转型,就是将其他类型转对象转为Object类型,向下转型则相反。
例:
1 public class Test { 2 private Object b;//设置object类型成员变量 3 public Object getB(){ 4 return b; 5 } 6 public void setB(Object b){ 7 this.b = b; 8 } 9 public static void main(String [] args){ 10 Test test = new Test(); 11 test.setB(new Boolean(true));//向上转型 12 System.out.println(test.getB()); 13 test.setB(new Float(12.3)); 14 Float f = (Float)(test.getB());//向下转型 15 System.out.println(f); 16 test.setB(new Float(12.3)); 17 Integer f1 = ( Integer)(test.getB());//向下转型,抛出异常 18 System.out.println(f1); 19 20 } 21 }
运行结果:
true
12.3
Exception in thread "main" java.lang.ClassCastException: java.lang.Float cannot be cast to java.lang.Integer
at fanxing.Test.main(Test.java:19)
在上述例子中,Test类中定义了私有的成员变量b,它的类型为Object类型,同时为其定义了相应的set与get方法,将new Boolean(true)对象作为setB()方法参数,由于setB()方法的参数类型为Object,这样就实现了“向上转型”,同时在调用getB()方法的时候,将getB()方法返回的Object对象以相应的类型返回,这就是“向下转型”,问题通常会出现在这里,因为“向上转型”是安全的,而“向下转型”操作时用错了类型,或者没有执行该操作,就会出现异常。
向上转型,向下转型
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。