zoukankan      html  css  js  c++  java
  • 向上转型,向下转型

    向上转型,就是将其他类型转对象转为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对象以相应的类型返回,这就是“向下转型”,问题通常会出现在这里,因为“向上转型”是安全的,而“向下转型”操作时用错了类型,或者没有执行该操作,就会出现异常。

  • 相关阅读:
    要开学了,暂时停更
    day13 IP包头分析 | 路由器原理 1
    day12 数据链路层 | 交换机基本命令
    day11 OSI与TCP-IP 5层协议 | 物理层相关知识
    day10 扫描与爆破
    day 09 简单渗透测试
    day07 PKI
    day07 域
    day06 WEB服务器 | FTP服务器
    day05 DHCP部署与安全 | DNS部署与安全
  • 原文地址:https://www.cnblogs.com/xyzyj/p/6194386.html
Copyright © 2011-2022 走看看