更新時間:2023-05-11 來源:黑馬程序員 瀏覽量:
在Java中,多態(tài)的機制是通過繼承和方法重寫來實現(xiàn)的。具體來說,當(dāng)一個子類繼承自一個父類并重寫了父類的方法時,當(dāng)使用父類類型的變量來調(diào)用這個方法時,實際上會調(diào)用子類中重寫后的方法。這種行為被稱為動態(tài)方法分派,是實現(xiàn)多態(tài)的核心機制之一。
以下是一個簡單的Java代碼演示多態(tài)的例子:
class Animal { public void makeSound() { System.out.println("The animal makes a sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("The dog barks"); } } class Cat extends Animal { @Override public void makeSound() { System.out.println("The cat meows"); } } public class PolymorphismExample { public static void main(String[] args) { Animal animal1 = new Animal(); Animal animal2 = new Dog(); Animal animal3 = new Cat(); animal1.makeSound(); animal2.makeSound(); animal3.makeSound(); } }
在這個例子中,Animal是父類,而Dog和Cat是繼承自Animal的子類。在子類中,我們重寫了makeSound方法,并提供了不同的實現(xiàn)。
在main方法中,我們創(chuàng)建了三個Animal類型的對象,并分別用它們來調(diào)用makeSound方法。其中,animal1是Animal類型的對象,所以調(diào)用makeSound方法時會執(zhí)行Animal類中的makeSound方法。animal2和animal3都是Animal類型的變量,但是它們所引用的對象是Dog和Cat類型的對象,因此調(diào)用makeSound方法時會執(zhí)行這些子類中重寫后的makeSound方法。這就是多態(tài)的體現(xiàn)。