多态是面向对象编程中的一个重要概念,它允许不同的对象对同一消息做出不同的响应。
通过多态,可以通过父类或接口定义的引用变量来操作子类或实现类的对象,从而实现同一方法在不同对象上的不同行为。
在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()方法时,实际上会根据引用的实际对象类型来决定调用哪个类的方法,这就是多态性的体现。