Upcasting的意思
Upcasting(向上轉型)是面向對象編程中的一個概念,特別是在Java這樣的語言中。當一個對象被轉換為它的父類或者更泛化的類型時,就會發生向上轉型。這個過程是安全的,因為父類對象可以包含子類對象的所有方法和屬性,但是父類對象無法訪問子類特有的方法和屬性。
舉個例子:
class Animal {
public void eat() {
System.out.println("Animal is eating.");
}
}
class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking.");
}
}
public class UpcastingExample {
public static void main(String[] args) {
Dog dog = new Dog();
Animal animal = dog; // 這裡發生了向上轉型
animal.eat(); // 可以調用Animal類中的eat方法
// 但是無法直接調用Dog類中的bark方法
// animal.bark(); // 這會導致編譯錯誤
}
}
在上面的例子中,Dog類繼承自Animal類,所以Dog對象可以向上轉型為Animal類型。在main方法中,我們將Dog對象賦值給Animal類型的引用,這樣就可以通過Animal引用調用eat方法,但是無法直接調用Dog特有的bark方法。這就是向上轉型的一個典型例子。