引用类型转换
引用类型转换
多态的转换分为向上转型与向下转型两种:
向上转型
其实就是多态的写法:
格式:父类名称 对象名 = new 子类名称();
含义:右侧创建一个子类对象,把他当做父类来看待使用
Animal animal = new Cat();
注意事项:向上转型一定是安全的,从小范围转向了大范围,比如从小范围的猫,转到了大范围的动物
类似于:
double num = 100;// 正确 int -- > double ,自动类型转换
向下转型
对象的向下转型,其实就是一个【还原】得动作。
格式:子类名称 对象名 = (子类名称) 父类名称;
含义:将父类对象,【还原】称为本来的子类对象
Animal animal = new Cat();// 本来是猫,向上转型成为动物
Cat cat = (cat) animal;// 本来是猫 ,已经被当做动物了,还原回来成为本来的猫
注意事项:
a.必须保证对象本来创建的时候,就是猫,才能向下转型称为猫。
b.如果对象创建的时候本来不是猫,非要向下转型成为猫,就会报错。ClassCastException
类似于:
int num = (int ) 10.0;// 可以
int num = (int ) 10.5;// 不可以,精度损失
图解: