在Java中,向上轉(zhuǎn)型和向下轉(zhuǎn)型是用來(lái)處理父類與子類之間的關(guān)系的。
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("Dog is eating");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // 向上轉(zhuǎn)型
animal.eat(); // 輸出 Dog is eating
}
}
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("Dog is eating");
}
public void bark() {
System.out.println("Dog is barking");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog(); // 向上轉(zhuǎn)型
if (animal instanceof Dog) {
Dog dog = (Dog) animal; // 向下轉(zhuǎn)型
dog.bark(); // 輸出 Dog is barking
}
}
}
需要注意的是,向下轉(zhuǎn)型時(shí)一定要進(jìn)行類型檢查,以避免出現(xiàn)ClassCastException異常。