引用类型转换

来源:互联网 发布:魔域登陆器源码 编辑:程序博客网 时间:2024/06/08 11:29

1、向上类型转换(隐士/自动类型转换),是小类型到大类型的转换  ( 无风险 )

2、向下类型转换(强制类型转换)是大类型到小类型  (有风险)

3、类型转化存在风险,instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题

例:

     ①自动类型提升,向上类型转换

     创建一个子类对象Dog dog = new Dog();

                                     Animal animal = dog;

    ②向下类型转换,强制类型转换

        Dog dog2 = (Dog)animal;

    

        Cat cat = (Cat)animal;//此时编译会报错,因为此时的animal对象指向的是dog,而dog不是cat

       此时我们应该使用instanceof(用来判断一个引用是否是某个类型或者某个类型的子类型)

      if(animal instanceof Cat){

           Dog dog2 = (Dog)animal;

      }else{

         System.out.println("无法进行类型转换");

      }


 温馨提示:如果开发中要进行类型转换,建议使用instanceof,以保证转换的安全性。

0 0
原创粉丝点击