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