在 Java 中,向上转型和向下转型都是对象类型的转换方式。
向上转型是将一个子类对象转换为它的父类类型,可以理解为子类对象变为父类对象,也可以称为自动类型转换。这种转型是安全的,因为子类对象具有父类对象的所有属性和方法,所以可以直接赋值给父类类型的变量。语法如下:
父类类型 变量名 = new 子类类型();
Animal animal = new Dog();
这里将一个 Dog 对象转换为它的父类 Animal 类型,可以通过 Animal 对象来调用 Dog 类的方法。
向下转型是将一个父类对象转换为它的子类类型,需要使用强制类型转换符进行转换,也称为强制类型转换。这种转型是有风险的,因为父类对象可能并不是一个子类对象,如果进行强制类型转换会抛出 ClassCastException 异常。语法如下:
子类类型 变量名 = (子类类型) 父类类型变量名;
Animal animal = new Dog();
Dog dog = (Dog) animal;
这里将一个 Animal 对象转换为它的子类 Dog 类型,如果在运行时发现 animal 实际上不是一个 Dog 对象,就会抛出 ClassCastException 异常。
需要注意的是,向上转型是隐式的,不需要使用强制类型转换符;而向下转型是显式的,需要使用强制类型转换符,并且需要保证转换的安全性。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习