Java的多態是通過繼承和方法重寫來實現的。
首先,需要定義一個父類,該父類包含一個或多個方法。
然后,定義一個或多個子類,這些子類繼承自父類,并重寫父類中的方法。
父類中的方法可以使用關鍵字abstract
來定義為抽象方法,這樣子類就必須實現這些抽象方法。
在使用多態時,可以聲明一個父類類型的變量來引用子類對象,然后通過該父類類型的變量來調用方法。這樣,根據實際引用的子類對象的類型,可以調用子類中重寫的方法。
以下是一個示例代碼:
class Animal {
public void sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
public void sound() {
System.out.println("Cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // 輸出:"Dog barks"
animal2.sound(); // 輸出:"Cat meows"
}
}
在上述代碼中,Animal是父類,Dog和Cat是子類。Animal類中定義了一個sound()方法,而Dog和Cat類分別重寫了該方法。
在main()方法中,animal1和animal2是Animal類型的變量,分別引用了Dog和Cat類的對象。通過這些變量調用sound()方法時,實際上會調用子類中重寫的方法,而不是父類中的方法。這就是多態的效果。