//---------------基本数据类型------------
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;
}
}