编写一个Java程序,在程序中定义一个水果类Fruit,再定义Fruit类的两个子类Apple类和Banana类,在子类中重写父类的 disp() 方法,设计一个程序,验证方法的覆盖效果
时间: 2024-02-09 15:09:28 浏览: 26
下面是Java程序的实现:
```java
class Fruit {
void disp() {
System.out.println("这是一种水果");
}
}
class Apple extends Fruit {
void disp() {
System.out.println("这是一种苹果");
}
}
class Banana extends Fruit {
void disp() {
System.out.println("这是一种香蕉");
}
}
public class MainClass {
public static void main(String[] args) {
Fruit fruit = new Fruit();
Apple apple = new Apple();
Banana banana = new Banana();
fruit.disp(); // 调用父类的disp()方法
apple.disp(); // 调用Apple类的disp()方法
banana.disp(); // 调用Banana类的disp()方法
}
}
```
上述程序中,定义了一个Fruit类和两个子类Apple类和Banana类。在Fruit类中定义了一个disp()方法,输出“这是一种水果”,而在Apple类和Banana类中重写了disp()方法,分别输出“这是一种苹果”和“这是一种香蕉”。在主类MainClass中创建了一个Fruit类的对象fruit、一个Apple类的对象apple和一个Banana类的对象banana,分别调用了它们的disp()方法。输出结果如下:
```
这是一种水果
这是一种苹果
这是一种香蕉
```
由此可知,子类重写父类的方法后,调用该方法时会优先调用子类中的方法,也就是实现了方法的覆盖效果。