需求:果农要种植水果,有苹果和香蕉,两种水果有不同的生长环境和生长方法、种植方法grow method不同,使用多态描述; 参考步骤:
- 定义水果抽象类Fruit,抽象方法:void grow()
- 定义具体类Apple和Banana,分别继承Fruit并实现grow方法
- 定义果农FruitGrower类,其中有growFruit方法,该方法接收一个Fruit类型的参数,并调用其grow方法
- 测试类主方法中分别创建Apple和Banana类的实例,分别作为参数传入FruitGrower实例的growFruit方法中,根据水果的不同执行不同的生长过程
运行截图
代码部分:
public class Test {
public static void main(String[] args) {
Apple apple = new Apple();
TankBanana banana = new TankBanana();
FruitGrower(apple);
FruitGrower(banana);
}
public static void FruitGrower(Fruit fruit){
fruit.grow();
}
}
// 创建抽象类 Fruit
abstract class Fruit {
abstract void grow();
}
// 创建具体类 Apple Banana
class Apple extends Fruit{
@Override
void grow() {
System.out.println("苹果生长在春天和夏天.");
}
}
class TankBanana extends Fruit{
@Override
void grow() {
System.out.println("香蕉生长在炎热多雨的天气里.");
}
}