动态多态中的向下转型
时间: 2024-06-12 15:08:47 浏览: 76
Java 向下转型的意义
5星 · 资源好评率100%
动态多态是面向对象编程中的一个重要概念,它允许通过父类的引用变量来调用子类的方法。向下转型指的是将父类的引用变量转换为子类的引用变量,以便能够访问子类特有的方法和属性。
在Java中,向下转型可以通过强制类型转换实现。下面是一个示例:
```java
class Animal {
public void sound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("狗发出汪汪声");
}
public void run() {
System.out.println("狗在跑");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.sound(); // 输出:狗发出汪汪声
// 向下转型
Dog dog = (Dog) animal;
dog.run(); // 输出:狗在跑
}
}
```
在上面的例子中,首先创建了一个Animal类的引用变量animal,并将其指向一个Dog类的实例。然后使用animal调用sound()方法时,由于动态多态的特性,实际上会调用到Dog类中重写的sound()方法。
接着,使用向下转型将animal转换为Dog类的引用变量dog。这样就能够通过dog调用Dog类特有的方法run()。
阅读全文