多態是面向對象編程中的一個重要概念,它允許不同的對象對同一消息做出不同的響應。
通過多態,可以通過父類或接口定義的引用變量來操作子類或實現類的對象,從而實現同一方法在不同對象上的不同行為。
在Java中,多態性主要通過繼承和接口實現來實現。
// 定義動物類
class Animal {public void makeSound() {System.out.println("Animal makes a sound");}
}// 定義狗類,繼承自動物類
class Dog extends Animal {@Overridepublic void makeSound() {System.out.println("Dog barks");}
}// 定義貓類,繼承自動物類
class Cat extends Animal {@Overridepublic void makeSound() {System.out.println("Cat meows");}
}public class PolymorphismExample {public static void main(String[] args) {Animal animal1 = new Dog(); // 使用父類引用指向子類對象Animal animal2 = new Cat(); // 同上animal1.makeSound(); // 調用的是Dog類的makeSound方法animal2.makeSound(); // 調用的是Cat類的makeSound方法}
}
在這個示例中,Animal類是父類,Dog和Cat類是其子類。在main方法中,我們使用Animal類的引用animal1和animal2分別指向Dog和Cat類的實例對象。當調用makeSound()方法時,實際上會根據引用的實際對象類型來決定調用哪個類的方法,這就是多態性的體現。