继承与多态是面向对象编程中重要的概念,它们能够实现代码重用和灵活性的巧妙结合。通过继承,子类可以继承父类的属性和方法,从而实现代码的重用;而多态则允许不同对象对同一消息作出不同响应,从而提供了更高的灵活性。下面是一个简单的示例,演示了继承和多态的使用:
// 父类 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 } }
在上面的示例中,Dog 和 Cat 类分别继承自 Animal 类,并覆盖了父类的 sound() 方法。在 Main 类中,我们创建了一个 Dog 对象和一个 Cat 对象,并分别调用它们的 sound() 方法。由于多态性的存在,尽管 animal1 和 animal2 声明为 Animal 类型,但它们实际上分别是 Dog 和 Cat 类型的对象,因此会分别调用各自子类的 sound() 方法。
Dog
Cat
Animal
sound()
Main
animal1
animal2
这种继承和多态的结合提供了很大的灵活性和扩展性。当需要添加新的动物类型时,只需创建一个新的子类并继承自 Animal 类,然后实现自己的 sound() 方法即可。这样,代码的重用性得到了提高,同时也保持了良好的灵活性,使得系统能够轻松应对需求的变化。
原文链接:codingdict.net