引用类型转换

引用类型转换

多态的转换分为向上转型与向下转型两种:

向上转型

其实就是多态的写法:

格式:父类名称 对象名 = 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;// 不可以,精度损失

图解:

原文地址:https://www.cnblogs.com/anke-z/p/12417088.html