在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) {
Animal animal = new Cat(); // 父类引用指向子类对象
animal.eat(); // 输出 "Animal is eating"
// animal.meow(); // 编译错误,无法访问子类特有的方法
}
}
在上面的例子中,父类Animal的引用animal指向子类Cat的对象,可以调用父类的方法eat,但无法调用子类特有的方法meow。