使用多态理念完成自动贩卖机概念

这个示例展示了如何使用面向对象编程中的多态特性来创建一个自动贩卖机系统。系统包括了不同类型的饮料类(如矿泉水、可乐、冰红茶和雪碧),这些类都继承自一个抽象的饮料类。用户可以通过输入数字选择想要的饮料,自动贩卖机根据输入返回相应的饮料实例,并显示饮料名称和价格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
自动贩卖机案例
    用户输入1时 出现矿泉水
        输入2时 出现可乐
        输入3时 出现冰红茶
        输入4时 出现雪碧
    要求:
        分别创建 各种饮料类 使用多态 来进行编写
*/
//创建包
package classes;
//导包
import java.util.Scanner;
//创建饮料类
class Dirnk{
    //饮料的属性 为名字 和 价格
    //定义属性
    //名字属性
    private String name ;
    
    //价格属性
    private int price ;
    
    //提供无参构造方法
    public Dirnk(){}
    //提供有参构造方法
    public Dirnk(String name , int price){
        this.name = name ;
        this.price = price ;
    }
    //提供名字属性的get/set方法
    public void setName(String name ){
        this.name = name ;
    }
    //get方法
    public String getName(){
        return name ;
    }
    //提供价格属性的get/set方法
    public void setPrice(int price){
        this.price = price ;
    }
    //提供get方法
    public int getPrice (){
        return price ;
    }
}
/*
创建矿泉水类并且继承饮料类
*/
class Water extends Dirnk{
    //提供无参构造方法
    public Water(){}
    //提供有参构造方法
    public Water(String name , int price){
        super(name , price);
    }
}
//创建可乐类   
class Coce extends Dirnk{
    //提供无参构造方法
    public Coce(){}
    //提供有参构造方法
    public Coce(String name , int price){
        super( name , price );
    }
}
//创建冰红茶类
class IceTea extends Dirnk {
    //提供无参构造方法
    public IceTea(){}
    //提供有参构造方法
    public IceTea(String name , int price){
        super(name , price);
    }
}
//创建雪碧类
class XueB extends Dirnk{
    //提供无参构造方法
    public XueB(){}
    //提供有参构造方法
    public XueB(String name , int price){
        super(name , price);
    }
}
//创建一个自动贩卖机类
class Machine{
    //定义一个选择方法
    //当用户输入不同的数字时候 跳出不同的饮料 
    public Dirnk sell(int n){
        switch (n){
            case 1 : Water wa = new Water(" 自来水 ", 1 );
                return wa ;
            case 2 : Coce ce = new Coce(" 可口可乐 ", 3 );
                return ce ;
            case 3 : IceTea te = new IceTea(" 冰红茶 ", 5 );
                return te ;
            case 4 : XueB xb = new XueB(" 雪碧 ", 5);
                return xb ;
            default: return null ;
        }
    }
}
//创建测试类
class TestDirnk{
    //main方法
    public static void main(String[] args){
        //创建Scanner类对象 用来完成用户输入
        Scanner sc = new Scanner(System.in);
        //输入提示语句
        System.out.println(" 给出你的选择 ");
        //定义Scanner类对象的数据类型
        int n = sc.nextInt();
        
        //创建自动贩卖机对象
        Machine ma = new Machine();
        //通过ma调用sell方法 传入用户输入的数字
        Dirnk dk  =  ma.sell(n);
        //输出语句
        System.out.println(" 饮料是: "+dk.getName()+" 价格是: "+dk.getPrice());
    }
}


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值