编写一个Java程序,在程序中定义一个水果类Fruit,再定义Fruit类的两个子类Apple类和Banana类,在子类中重写父类的 disp() 方法,设计一个程序,验证方法的覆盖效果
时间: 2024-02-09 21:09:26 浏览: 84
好的,以下是符合你要求的Java程序:
```java
class Fruit {
void disp() {
System.out.println("这是水果类");
}
}
class Apple extends Fruit {
@Override
void disp() {
System.out.println("这是苹果类");
}
}
class Banana extends Fruit {
@Override
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,以及两个子类Apple和Banana。在子类中,我们重写了父类的disp()方法,并分别输出不同的信息。
在main()方法中,我们实例化了一个Fruit对象fruit1,一个Apple对象fruit2,以及一个Banana对象fruit3。然后,分别调用它们的disp()方法。由于fruit2和fruit3是Fruit类的子类,且已经重写了disp()方法,因此在调用这两个对象的disp()方法时,会分别调用它们自己的disp()方法,输出不同的信息。而fruit1是Fruit类的对象,因此在调用它的disp()方法时,会调用Fruit类中的disp()方法,输出“这是水果类”的信息。
这样,我们验证了方法的覆盖效果。
阅读全文