多态性是面向对象编程中的一个核心概念,它允许同一个接口(或方法)有不同的实现方式。在Java中,多态性主要通过继承和接口实现。

什么是多态?

简单来说,多态性就是允许你将父类对象设置成为子类对象的实例。这样,你可以对父类对象使用子类中定义的方法,从而实现不同的行为。

class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Dog barks");
    }
}

class Cat extends Animal {
    void sound() {
        System.out.println("Cat meows");
    }
}

public class Test {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.sound();
        
        myAnimal = new Cat();
        myAnimal.sound();
    }
}

在上面的例子中,我们创建了一个Animal类和两个子类Dog和Cat。通过将Dog和Cat对象赋值给Animal类型的变量,我们可以实现多态。

多态的用途

  1. 代码复用:通过多态,我们可以使用一个父类引用调用子类的方法,从而实现代码复用。
  2. 扩展性:当我们需要添加新的子类时,我们只需要实现新的方法,而不需要修改现有的代码。

注意事项

  1. 多态性仅在方法调用时有效,如果访问成员变量,则必须使用具体的子类引用。
  2. 多态性是通过方法重写实现的,而不是通过构造函数。

下一节

如果你对多态性有了基本的理解,可以继续阅读 Java 继承教程 来深入了解继承的概念。

Dog