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");
}