• 我的Java历程_Java对象类型的转换


    向上转型:

    可以将子类对象看作是父类对象叫做“向上转型”,由于向上转型是从一个较为具体的类向较为抽象的类的转换,所以它总是安全的。

    例如:可以将正方形、长方形叫做是四边形,但是不能说四边形是正方形或长方形。

    向下转型:

    向下转型可以从向上转型推出,是由子类对象向父类方向上的转型,这样的转型通常是会出问题的,就好比说,你可以说麻雀是鸟类,但是你不能说所有的鸟类都是麻雀,这是非常不符合逻辑的,所以在直接将父类对象赋给子类时会产生编译报错,因为父类对象不一定是子类的实例。

    所以在做向下转型时,需要告知编译器,这个父类对象就是子类对象,即强制的将父类对象转换成某个子类对象,这样的转型方式称为向下转型;

    例如:

    Parent p = new Parent();

    Child c = (Chile)p; 

    但是在程序执行向下转型时,如果父类不是子类对象的实例,就会发生ClassCastException异常,所以在执行向下转型之前应该养成一个好的习惯,就是用instanceof关键字来判断父类对象是否是子类对象的实例,

    instanceof语法如下:

    myobject instanceof ParentClass

    if(p instanceof c){

      Child c = (Chile)p;

      }else{

      //doSomeThing.....

    }

  • 相关阅读:
    Fastjson的常用方法总结
    Springboot整合Gson报错
    SQL优化学习笔记(二)
    eclipse安装阿里巴巴代码规约插件
    Maven:记一次将jar包添加到maven私库的过程
    zookeeper 开机自启动 -- CentOS7
    JVM相关配置项
    JVM 优化
    jstat命令查看jvm的GC情况
    GC(Allocation Failure)引发的一些JVM知识点梳理
  • 原文地址:https://www.cnblogs.com/Eternally-dream/p/6573590.html
Copyright © 2020-2023  润新知