引用多态与类型转换的区别
代码一: Animal dog = new Dog(); Animal animal = dog; 代码二 Animal animal = new Dog(); 代码一与代码二结果一样,区别在于代码一可以使用强转,代码二用的JAVA的多态性
Animal obj2=new Dog(); 这其实也是向上转型,Dog是Animal的子类,Animai是Dog的父类
这个跟数据类型转换差不多、int 转 double 可以、但 double 转 int 是不可以直接转换的、需要强制转换、理解偶读是一样的、
我也是初学者,三天前才开始看教程,我说下我的理解,你可以参考一下,不保证正确
多态就是指一个对象的多种状态,如,一条狗,你可以说它是一只动物,也可以说它是一只生物,狗、动物、生物都可以形容它,表示狗有以上三种(描叙)形态
再如,柏树,也可以说它是一种植物,一种生物,也是数的三种形态
向上级转换:一只狗可以说它是一只动物,一只生物
向下级转换:拿狗举列,生物 花狗=new 狗();定义了一只狗,但是它的类型是生物,虽然他是用狗()来实例化的,现在问题出来了,向下级转换是有风险的,你需要判断它到底是 什么类里的才可以转换为那个类,我们实例化的花狗(定义类型是生物)可以转换为动物、狗类型,但是不能转换为植物、柏树类型