1 年前 ‧ 240 瀏覽
0
多型的核心在於,Java可以根據物件的具體類型來調用正確的覆蓋方法,這允許用一個接口或一個父類來處理多種類型的物件。多型的核心在於,Java可以根據物件的具體類型來調用正確的覆蓋方法,這允許用一個接口或一個父類來處理多種類型的物件。
eg. class Animal {
public void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
public void makeSound() {
System.out.println("Cat meows");
}
}
public class Main {
public static void main(String[] args) {
// 使用多型
Animal myAnimal = new Animal(); // Animal 物件
Animal myDog = new Dog(); // Dog 物件,作為 Animal 型別
Animal myCat = new Cat(); // Cat 物件,作為 Animal 型別
myAnimal.makeSound(); // 輸出:Animal makes a sound
myDog.make.Sound(); //輸出:Dog barks
myCat.makeSound(); / 輸出:Cat meows
}
}
我們可以看到Animal是一個父類,而Dog和Cat都是繼承自Animal的子類。Dog和Cat覆蓋了父類的 makeSound()方法,並在不同情況下顯示不同的行為。
多型的特點:
(1)父類型變數可以指向子類型物件:Animal類型的變數可以指向Dog或Cat物件,這就是所謂的向上轉型。
(2)方法動態綁定:Java在運行時會根據物件的實際類型來調用正確的覆蓋方法,而不是根據變數的靜態類型。
使用多型的好處:
(1)靈活性:可以通過父類或接口來處理多種不同的物件,這使得程式更加靈活和可擴展。
(2)代碼簡化:通過多型,可以用統一的方式處理不同的子類,避免重複編寫相同的代碼。
(3)動態方法調用:在運行時,根據物件的實際類型動態決定調用哪個方法,這是多型最核心的能力。