案例:Java多态实现饮料购买咖啡、可乐、矿泉水

编写程序实现软料购买:

  编写程序,接收用户输入的信息,选择购买的饮料。

  可供选择的饮料有:咖啡、矿泉水和可乐。

  其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。

  购买可乐时可以选择:买可口可乐还是百事可乐。

更多文章请参考Java多态实现饮料购买咖啡、可乐、矿泉水2.0


编程如下:

import java.util.Scanner;

public class Drink {
    //饮料的属性
    private String name;//名称
    private int volume;//容量

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getVolume() {
        return volume;
    }

    public void setVolume(int volume) {
        this.volume = volume;
    }

    public Drink() {
    }

    public Drink(String name, int volume) {
        this.name = name;
        this.volume = volume;
    }

    public void show() {
        System.out.println("您购买的饮料信息如下:" + "\n名称:" + name + "\n容量:" + volume);
    }
}

class Coffee extends Drink {
    private String mixture;//添加物

    public String getMixture() {
        return mixture;
    }

    public void setMixture(String mixture) {
        this.mixture = mixture;
    }

    public Coffee() {
    }

    public Coffee(String name, String mixture, int volume) {
        super(name, volume);
        this.mixture = mixture;
    }

    @Override
    public void show() {
        System.out.println("您购买的饮料信息如下:" + "\n名称:" + super.getName() +
                "\n添加配料:" + this.mixture + "\n容量:" + super.getVolume());

    }
}

//可乐类
class Coco extends Drink {
    public Coco() {
    }

    public Coco(String name, int volume) {
        super(name, volume);
    }

    @Override
    public void show() {
        System.out.println("您购买的饮料信息如下:" + "\n名称:" + getName() + "\n容量:" + getVolume());
    }
}

//矿泉水类
class Water extends Drink {
    public Water() {
    }

    public Water(String name, int volume) {
        super(name, volume);
    }

    @Override
    public void show() {
        System.out.println("您购买的饮料信息如下:" + "\n名称:" + getName() + "\n容量:" + getVolume());
    }
}

//饮料选择类
class DrinkFactory {
    public static Drink getDrink(int i) {
        //赋初始值
        Drink drink = null;
        //创建键盘录入对像
        Scanner sc = new Scanner(System.in);

        if (i == 1) {
            System.out.println("请输入购买容量:");
            int volume = sc.nextInt();
            System.out.println("请问是否要配料(1、加糖 2、加奶 3、什么也不加)");
            int choice = sc.nextInt();
            String mixture;
            switch (choice) {
                case 1:
                    mixture = "加糖";
                    break;
                case 2:
                    mixture = "加奶";
                    break;
                default:
                    mixture = "什么都不加";
                    break;
            }
            drink = new Coffee("咖啡", mixture, volume);
        } else if (i == 2) {
            System.out.println("请输入购买容量:");
            int volume = sc.nextInt();
            System.out.println("请输入你需要购买的可乐:1.百事可乐 2.可口可乐");
            int choice = sc.nextInt();
            switch (choice) {
                case 1:
                    drink = new Coco("百世可乐", volume);
                    break;
                case 2:
                    drink = new Coco("可口可乐", volume);
                    break;
                default:
                    System.out.println("没有该饮料");
                    break;
            }
            drink = new Coco("可乐",volume);
        } else if (i == 3) {
            System.out.println("请输入购买容量:");
            int volume = sc.nextInt();
            drink = new Water("矿泉水", volume);
        }
        return drink;
    }
}

//饮料测试类
class DrinkTest {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请选择饮料(1.咖啡  2 可乐  3 矿泉水):");
        int num = sc.nextInt();
        Drink drink = DrinkFactory.getDrink(num);
        drink.show();
    }
}

运行结果:

请选择饮料(1.咖啡  2 可乐  3 矿泉水):
1
请输入购买容量:
23
请问是否要配料(1、加糖 2、加奶 3、什么也不加)
1
您购买的饮料信息如下:
名称:咖啡
添加配料:加糖
容量:23

Process finished with exit code 0

请选择饮料(1.咖啡  2 可乐  3 矿泉水):
2
请输入购买容量:
34
请输入你需要购买的可乐:1.百事可乐 2.可口可乐
3
没有该饮料
您购买的饮料信息如下:
名称:可乐
容量:34

Process finished with exit code 0

请选择饮料(1.咖啡  2 可乐  3 矿泉水):
2
请输入购买容量:
34
请输入你需要购买的可乐:1.百事可乐 2.可口可乐
2
您购买的饮料信息如下:
名称:可乐
容量:34

Process finished with exit code 0

请选择饮料(1.咖啡  2 可乐  3 矿泉水):
3
请输入购买容量:
500
您购买的饮料信息如下:
名称:矿泉水
容量:500

Process finished with exit code 0


到底啦!给靓仔点个赞吧! 

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liangzai2048

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值