以下是您提供的 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方法。

Java 强制类型转换示例:Animal 到 Dog

原文地址: https://www.cveoy.top/t/topic/pVS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录