java中允许定义一个子类的引用,指向父类对象
时间: 2024-04-30 21:23:04 浏览: 128
java多态性详解——父类引用子类对象.pdf
是的,Java中允许定义一个子类的引用,指向父类对象。这种行为称为向上转型。可以通过以下代码实现:
```
// 定义一个父类
class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
// 定义一个子类
class Cat extends Animal {
public void meow() {
System.out.println("Cat is meowing");
}
}
public class Main {
public static void main(String[] args) {
// 创建一个Cat对象
Cat cat = new Cat();
// 定义一个Animal引用,指向Cat对象
Animal animal = cat;
// 调用Animal的eat方法
animal.eat();
// 编译器不允许调用Cat的meow方法
// animal.meow();
// 可以将Animal引用转换为Cat引用
Cat cat2 = (Cat) animal;
cat2.meow();
}
}
```
在上面的代码中,定义了一个Animal类和一个Cat类,Cat是Animal的子类。在主方法中,创建一个Cat对象,并定义一个Animal引用指向Cat对象。调用Animal的eat方法时,实际上调用的是Cat的eat方法,因为Cat继承了Animal类,并重写了eat方法。由于Animal引用只能调用Animal类中的方法,因此不能直接调用Cat的meow方法。但是可以将Animal引用转换为Cat引用,从而调用Cat的meow方法。
阅读全文