文章目录
向上转型
对象的向上转型,其实就是多态写法。Java会自动向上转型。
格式:
父类名称 对象名 = new 子类名称()
含义: 右侧创建一个子类对象,把它当做父类来看待便用。
例如创建了一只猫,当做动物看待,没问题。
注意事顶: 向上转型一定足安全的。从小范围转向了大范围,如从小范囤的猫,向上转换成为更大范囤的动物。
类似于:
double num = 100; // 正确,int ---> double,自动类型转换。
向下转型
对象的向下转型,其实是一个【还原】的动作
格式:
子类名称 对象名 =(子类名称)父类对象
含义: 将父类对象,【还原】成为本来的子类对象。
注意事项: 必须保证对象本来创建的时候是子类(例如猫),才可以向下转型为猫。若转型为同级的狗,则编译不报错,但是运行错误(ClassCastException)。注意向下转型是还原。
类似于:
int num = (int) 10.0
如何判断本来的子类是什么
如何才能知道一个父类引用的对象,本来是什么子类?
格式:
对象 instanceof 类名称
这将会得到一个 boolean值结果,也就是判断前面的对象能不能当做后面类型的实例。