多类中的引用类型转换

来源:互联网 发布:外包淘宝客服多少钱 编辑:程序博客网 时间:2024/06/06 20:14

1  引用类型转化氛围两种  第一种是自动类型转换   第二种是强制类型转换。

2 下面我们用代码来学习两种转换:其中Animal是一个父类   Dog  和 Cat  是继承 Animal 的子类。

Animal animal =new Dog() ;    //首先我们先构造一个Dog对象,然后用一个Animal类型变量animal引用它:
  if(animal instanceof Dog){  //inatance作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

   Dog dog = (Dog)animal ;      // Dog对象被还原,强制类型转换
   }else{
        System.out.println("无法进行类型转换  dog");
         }

  if(animal instanceof Cat){   /inatance作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。 
    Cat cat = (Cat)animal;           
  }else{
       System.out.println("无法进行类型转换  cat");
        }

运行结果:无法进行类型转化  cat    //  表明Dog 和Animal之间可以进行强制类型转换,而Cat 则不行

-------------------------------------------------------------------------------------------------------------------------------------

而当对程序做如下修改,则运行结果是什么都没有输出,表明Animal和Dog、Cat之间的发生的强制类型转换都没有问题。

Animal animal =new Dog() ;//父类引用地址animal指向子类
  if(animal instanceof Dog){           
   Dog dog = (Dog)animal ;
   }else{
        System.out.println("无法进行类型转换  dog");
         }
  Animal animal2 = new Cat();
  if(animal2 instanceof Cat){
    Cat cat = (Cat)animal2;
  }else{
       System.out.println("无法进行类型转换  cat");
        }
 }

0 0
原创粉丝点击