java中用子类对象实例化父类对象
时间: 2024-10-14 21:11:16 浏览: 6
在 Java 中,虽然你不能直接用子类的对象实例化父类,因为父类引用只能引用父类类型的变量,但这正是多态的一个体现——向上转型(Upcasting)。当你有一个子类对象,你可以将其赋值给父类类型的引用变量,这被称为隐式转换。例如:
```java
// 定义父类 Animal
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 子类 Dog 继承 Animal
class Dog extends Animal {
@Override
public void eat() {
System.out.println("Dog is eating");
}
}
public class Main {
public static void main(String[] args) {
// 创建子类 Dog 的对象
Dog dog = new Dog();
// 父类引用 Animal 变量引用子类对象
Animal animalRef = dog;
// 调用 eat 方法,会执行子类 Dog 的版本
animalRef.eat(); // 输出 "Dog is eating"
// 如果需要,也可以通过向下转型来访问子类特有的方法
Dog specificDogMethod = (Dog) animalRef; // 将 Animal 引用强制转换为 Dog
specificDogMethod.someDogSpecificMethod();
}
}
```