Java 强制类型转换示例:Animal 到 Dog
以下是您提供的 Java 代码:
class Animal {
void makeSound() {
System.out.println('Animal makes a sound');
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println('Dog barks');
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
Dog dog = (Dog) animal;
dog.makeSound();
}
}
在这段代码中,对象引用animal发生了强制类型转换。
在main方法中,我们创建了一个Animal类的引用animal,并将其指向一个Dog类的实例。
然后,我们使用(Dog)对animal进行了强制类型转换,将其转换为Dog类型的引用dog。
这是因为在编译时,animal的类型被声明为Animal,但它实际上指向的是一个Dog对象。通过强制类型转换,我们将其转换为Dog类型,以便可以调用Dog类特有的方法。
在调用dog.makeSound()时,实际上会执行Dog类中重写的makeSound方法,所以它将输出:'Dog barks'。
因此,运行这段代码将会输出:'Dog barks',表示强制类型转换后,调用的是Dog类中的makeSound方法。
原文地址: https://www.cveoy.top/t/topic/pVS 著作权归作者所有。请勿转载和采集!