3、(方法的覆盖)编写一个Java程序,在程序中定义一个水果类Fruit,再定义Fruit类的两个子类Apple类和Banana类,在子类中重写父类的 disp() 方法,设计一个程序,验证方法的覆盖效果;
时间: 2024-02-09 11:09:21 浏览: 98
好的,我来为您编写这个Java程序。
首先,我们定义一个Fruit类,其中包含一个disp()方法:
```
public class Fruit {
public void disp() {
System.out.println("这是一个水果!");
}
}
```
然后,我们定义Apple类和Banana类,继承自Fruit类,并重写disp()方法:
```
public class Apple extends Fruit {
@Override
public void disp() {
System.out.println("这是一个苹果!");
}
}
public class Banana extends Fruit {
@Override
public void disp() {
System.out.println("这是一个香蕉!");
}
}
```
接下来,我们编写一个测试程序,验证方法的覆盖效果:
```
public class TestFruit {
public static void main(String[] args) {
Fruit fruit = new Fruit();
fruit.disp(); // 输出:这是一个水果!
Apple apple = new Apple();
apple.disp(); // 输出:这是一个苹果!
Banana banana = new Banana();
banana.disp(); // 输出:这是一个香蕉!
Fruit fruit1 = new Apple();
fruit1.disp(); // 输出:这是一个苹果!
Fruit fruit2 = new Banana();
fruit2.disp(); // 输出:这是一个香蕉!
}
}
```
从输出结果可以看出,当我们调用父类的disp()方法时,输出的是父类中定义的内容;当我们分别调用子类的disp()方法时,输出的是子类中重写的内容;而当我们将子类的对象赋值给父类的引用变量后,再调用disp()方法时,输出的是子类中重写的内容,这说明方法的覆盖效果得到了验证。
希望这个Java程序能够对您有所帮助。
阅读全文