5.(在上次实验建立Dog的基础上) (1)在main方法里新建一个Dog类的上转型对象d2(new调用构造方法, Animal d2 = new ….),然后打印输出的d2的run和eat方法,观察
时间: 2024-10-20 17:04:34 浏览: 44
在Java中,如果你有一个已经创建的`Dog`类,它是`Animal`类的子类,你可以使用向上转型(upcasting)将`Dog`实例赋值给`Animal`类型的变量。这是因为在Java中,子类的对象可以隐式地赋给其父类类型的引用。
假设你有如下的类结构:
```java
class Animal {
public void run() {
System.out.println("动物跑步");
}
public void eat() {
System.out.println("动物吃东西");
}
}
class Dog extends Animal {
public void run() {
System.out.println("狗跑步");
}
public void eat() {
System.out.println("狗吃骨头");
}
}
public class Main {
public static void main(String[] args) {
// 创建Dog对象并向上转型为Animal类型
Animal d2 = new Dog();
// 调用run和eat方法,因为是向上转型,会调用Dog类的方法
d2.run(); // 输出:狗跑步
d2.eat(); // 输出:狗吃骨头
}
}
```
当你在`main`方法中打印出`d2.run()`和`d2.eat()`时,你会看到的是`Dog`类特有的行为,即“狗跑步”和“狗吃骨头”。
阅读全文
相关推荐

















