2.1.2 代码举例
时间: 2024-09-07 08:00:47 浏览: 18
2.1.2 代码举例:
在Java中,我们可以通过继承和方法重写来展示多态。下面是一个简单的例子:
```java
// 定义一个基类 Animal
class Animal {
public void sound() {
System.out.println("Animal makes a sound");
}
}
// 子类 Dog 继承 Animal 并重写 sound 方法
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
}
}
// 子类 Cat 同样继承 Animal 也重写 sound 方法
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Cat meows");
}
}
// 主函数中创建 Animal 类型的引用并操作它们
public static void main(String[] args) {
Animal animal1 = new Dog(); // 创建 Dog 对象并赋值给 Animal 引用
Animal animal2 = new Cat(); // 创建 Cat 对象同样赋值给 Animal 引用
animal1.sound(); // 输出 "Dog barks",因为实际对象是 Dog
animal2.sound(); // 输出 "Cat meows",因为实际对象是 Cat
// 这里展示了多态性,虽然引用的是 Animal,但实际上运行的是各自子类的方法
}
```
在这个例子中,`animal1.sound()` 和 `animal2.sound()` 调用的是 Dog 和 Cat 自己的 sound 方法,而不是 Animal 类的默认版本,这就是多态的体现。