Java 继承与多态:代码重用与灵活性的巧妙结合


继承与多态是面向对象编程中重要的概念,它们能够实现代码重用和灵活性的巧妙结合。通过继承,子类可以继承父类的属性和方法,从而实现代码的重用;而多态则允许不同对象对同一消息作出不同响应,从而提供了更高的灵活性。下面是一个简单的示例,演示了继承和多态的使用:

// 父类 Animal
class Animal {
    String name;

    Animal(String name) {
        this.name = name;
    }

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

// 子类 Dog 继承自 Animal
class Dog extends Animal {
    Dog(String name) {
        super(name);
    }

    @Override
    void sound() {
        System.out.println(name + " barks");
    }
}

// 子类 Cat 继承自 Animal
class Cat extends Animal {
    Cat(String name) {
        super(name);
    }

    @Override
    void sound() {
        System.out.println(name + " meows");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal1 = new Dog("Buddy");
        Animal animal2 = new Cat("Whiskers");

        animal1.sound();  // 输出:Buddy barks
        animal2.sound();  // 输出:Whiskers meows
    }
}

在上面的示例中,DogCat 类分别继承自 Animal 类,并覆盖了父类的 sound() 方法。在 Main 类中,我们创建了一个 Dog 对象和一个 Cat 对象,并分别调用它们的 sound() 方法。由于多态性的存在,尽管 animal1animal2 声明为 Animal 类型,但它们实际上分别是 DogCat 类型的对象,因此会分别调用各自子类的 sound() 方法。

这种继承和多态的结合提供了很大的灵活性和扩展性。当需要添加新的动物类型时,只需创建一个新的子类并继承自 Animal 类,然后实现自己的 sound() 方法即可。这样,代码的重用性得到了提高,同时也保持了良好的灵活性,使得系统能够轻松应对需求的变化。


原文链接:codingdict.net