强转问题

//---------------基本数据类型------------
byte num1 = 1;
int num2 = 1;
//大类型转小类型   --  需要强转,向下转型,存在安全隐患
//num1 = (byte)num2;
//小类型转大类型   --  自动转换,向上转型,没有安全隐患
//num2 = num1;
 change1(num1,num2);
 public static void change1(byte num1,int num2){
        if(num2 < -128 || num2 > 127){
            System.out.println("不允许强转,会数据丢失");
        }else{
            num1 = (byte)num2;
        }
    }
//--------------引用数据类型-------------
Cat cat1 = new Cat();
//子类对象转换父类对象    --  向上转型,安全转换
//Animal animal = cat1;
//父类对象转换子类对象    --  向下转型,需要强转
//Cat cat2 = (Cat)animal;
//会报错   --  ClassCastException
//Dog dog = (Dog)animal;
change2(cat1);
Dog dog = new Dog();
change2(dog);
public static void change2(Animal animal){
     if(animal instanceof Cat){
         Cat cat = (Cat)animal;
     }else if(animal instanceof Dog){
         Dog dog = (Dog)animal;
     }
}

 

posted @ 2021-11-05 17:40  Crushming  阅读(49)  评论(0)    收藏  举报