编写一个Java程序,在程序中定义一个水果类Fruit,再定义Fruit类的两个子类Apple类和Banana类,在子类中重写父类的 disp() 方法,设计一个程序,验证方法的覆盖效果;
时间: 2024-02-09 16:09:22 浏览: 91
好的,以下是Java程序的实现:
```java
class Fruit {
public void disp() {
System.out.println("我是一种水果");
}
}
class Apple extends Fruit {
public void disp() {
System.out.println("我是一种苹果");
}
}
class Banana extends Fruit {
public void disp() {
System.out.println("我是一种香蕉");
}
}
public class Test {
public static void main(String[] args) {
Fruit fruit1 = new Fruit();
Fruit fruit2 = new Apple();
Fruit fruit3 = new Banana();
fruit1.disp(); // 输出:我是一种水果
fruit2.disp(); // 输出:我是一种苹果
fruit3.disp(); // 输出:我是一种香蕉
}
}
```
在上面的代码中,我们首先定义了一个父类 `Fruit`,它有一个 `disp()` 方法,输出一行字符串。然后我们又定义了两个子类 `Apple` 和 `Banana`,它们都继承了 `Fruit` 类,并且分别重写了 `disp()` 方法,输出不同的字符串。
在 `Test` 类的 `main()` 方法中,我们分别创建了一个 `Fruit` 对象、一个 `Apple` 对象和一个 `Banana` 对象,并分别调用它们的 `disp()` 方法。我们可以看到,由于 `disp()` 方法被子类重写了,所以在调用子类的 `disp()` 方法时,输出的是子类中定义的字符串,而不是父类中定义的字符串。这就是方法的覆盖效果。
阅读全文