更新时间:2023-05-11 来源:黑马程序员 浏览量:
在Java中,多态的机制是通过继承和方法重写来实现的。具体来说,当一个子类继承自一个父类并重写了父类的方法时,当使用父类类型的变量来调用这个方法时,实际上会调用子类中重写后的方法。这种行为被称为动态方法分派,是实现多态的核心机制之一。
以下是一个简单的Java代码演示多态的例子:
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方法,并提供了不同的实现。
在main方法中,我们创建了三个Animal类型的对象,并分别用它们来调用makeSound方法。其中,animal1是Animal类型的对象,所以调用makeSound方法时会执行Animal类中的makeSound方法。animal2和animal3都是Animal类型的变量,但是它们所引用的对象是Dog和Cat类型的对象,因此调用makeSound方法时会执行这些子类中重写后的makeSound方法。这就是多态的体现。