如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数正确吗
时间: 2024-03-09 11:46:19 浏览: 90
是的,可以使用子类对象作为实际参数。这就是Java中的多态特性。因为子类对象是一种特殊的父类对象,子类对象拥有父类对象的所有属性和方法,同时还可以拥有自己的属性和方法。所以,当一个方法的形式参数定义的是父类对象时,可以使用子类对象作为实际参数,因为子类对象可以被当做父类对象来使用。
例如,假设有一个父类`Animal`和一个子类`Cat`:
```java
public class Animal {
public void eat() {
System.out.println("Animal is eating");
}
}
public class Cat extends Animal {
public void meow() {
System.out.println("Cat is meowing");
}
}
```
如果有一个方法的形式参数定义为`Animal`类型:
```java
public void feedAnimal(Animal animal) {
animal.eat();
}
```
那么,可以使用`Cat`对象作为实际参数:
```java
Cat cat = new Cat();
feedAnimal(cat);
```
在这里,`Cat`对象被当做`Animal`对象来使用,调用`feedAnimal`方法时会调用`Cat`类中的`eat`方法。这就是Java中的多态特性。
阅读全文