阅读量:9
Java中实现向下转型的方式是使用强制类型转换符((子类类型) 父类对象),将父类对象转换为子类类型。
例如,有一个父类Animal和子类Dog:
public class Animal { public void eat() { System.out.println("Animal is eating..."); } } public class Dog extends Animal { public void eat() { System.out.println("Dog is eating..."); } public void bark() { System.out.println("Dog is barking..."); } }
现在创建一个Animal对象,然后将其向下转型为Dog对象:
Animal animal = new Dog(); Dog dog = (Dog) animal;
这样就将animal对象成功向下转型为了Dog类型的对象dog。然后就可以调用Dog类特有的方法了:
dog.eat(); // 输出:Dog is eating... dog.bark(); // 输出:Dog is barking...
需要注意的是,如果将父类对象向下转型为一个与其本身不相关的子类对象,会抛出ClassCastException异常。因此,在进行向下转型之前,最好使用instanceof运算符检查对象是否能够转换为目标类型:
if (animal instanceof Dog) { Dog dog = (Dog) animal; dog.bark(); } else { System.out.println("animal cannot be cast to Dog"); }