java父类调用子类方法
时间: 2023-08-04 08:36:29 浏览: 135
在 Java 中,父类不能直接调用子类的方法。因为父类不知道子类具体是什么类型,也不知道子类是否实现了该方法。但是,可以通过向下转型(强制类型转换)来实现父类调用子类方法的操作。具体实现方法如下:
1. 确保子类已经重写了父类的方法。
2. 在父类中定义一个抽象方法,让子类去实现。
3. 在父类中定义一个方法,使用向下转型将父类对象转换为子类对象,然后调用子类方法。
示例代码如下:
```java
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("Cat is eating");
}
public void meow() {
System.out.println("Meow");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Cat();
if (animal instanceof Cat) {
Cat cat = (Cat) animal;
cat.meow();
}
animal.eat();
}
}
```
在上面的示例中,我们定义了 `Animal` 和 `Cat` 两个类,其中 `Cat` 继承自 `Animal` 并重写了 `eat` 方法。在 `Test` 类中,我们创建了一个 `Animal` 类型的对象 `animal`,并将其引用指向一个 `Cat` 类型的实例。然后我们使用向下转型将 `animal` 强制转换为 `Cat` 类型,并调用了 `Cat` 类中的 `meow` 方法。最后,我们调用了 `animal` 的 `eat` 方法,实际上调用的是 `Cat` 类中重写过的 `eat` 方法。
阅读全文