来个解一下,求解救,麻烦写下代码谢谢

综合测试题:品尝饮料
一、要求  
1、建立一个Java抽象类Drink
a)声明一个抽象方法taste(),该方法负责输出饮料的味道;
b)饮料类型(Coffee(咖啡),Beer(啤酒),Milk(牛奶)):
c)声明静态方法getDrink(String drinkType),根据传入的饮料英文名称创建 不同的饮料对象,并返回该对象。

2、建立Drink的具体子类:  
a)分别建立Drink的子类:Coffee(咖啡),Beer(啤酒),Milk(牛奶); 
b)实现taste()方法,要求在控制台打印各自的味道特征。  

4、建立Test测试类,测试以上内容的正确性  
a)编写main方法,通过命令行传参的方式传入某种饮料的类型。
b)在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。然后调用该饮料对象的taste()方法,输出该饮料的味道。

 5、编译程序,并运行。  
a)如果当参数为Coffee时,结果为:咖啡:苦 
b)如果没有该种饮料,结果为:对不起!没有您输入的饮料类型。

给你写了:
首先是一个Drink接口:

public interface Drink {
     void taste();
}

接着是三个子类


public class Coffee implements Drink{

    @Override
    public void taste() {
        System.out.println("咖啡:苦");
    }

}
public class Beer implements Drink{
    @Override
    public void taste() {
        System.out.println("啤酒:略微苦涩");
    }
}
public class Milk implements Drink {
    @Override
    public void taste() {
        System.out.println("牛奶:微甜");
    }
}

然后是Drink工厂类,通过这个类中的方法根据传入参数获取不同的饮料类型


public class DrinkFactory {
    public  static Drink getDrink(String drinkType){
        if (drinkType==null){
            return null;
        }
        if(drinkType.equalsIgnoreCase("Coffee")){
            return new Coffee();
        }else  if(drinkType.equalsIgnoreCase("Beer")){
            return new Beer();
        }else  if(drinkType.equalsIgnoreCase("Milk")){
            return new Milk();
        }
        return null;
    }
}

最后测试类:

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        //命令行输入参数
        System.out.println("请输入饮料类型:");
        Scanner scanner = new Scanner(System.in);
        String next = scanner.next();
        Drink drink = DrinkFactory.getDrink(next);
        if(drink==null){
            System.out.println("对不起!没有您输入的饮料类型。");
        }else {
            drink.taste();
        }

    }
}

打完收工

这个问题应该使用最简单的工厂模式去求解。