AX001-HU 2022-02-09 15:40 采纳率: 100%
浏览 28
已结题

自助饮品消费系统 错误 !

问题遇到的现象和发生背景

“prpject_饮料”中的“咖啡(java.lang.String,int,int,java.lang.String)”。“咖啡”不能应用于“(java. Lang.Stand,java. Lang.Stand,int,java .Lang.Stand)”

问题相关代码,请勿粘贴截图

```java
父类




package prpject_beverage;

public class Beverage {
    private String name;//名称
    private  int size;//规格
    private int price;//价格

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }
    public String showBeverage(){
        return "选择的饮料:"+name+"\n饮料规格:"+size+"\n"+"价格是:"+price+"元";
    }

    public Beverage() {
    }

    public Beverage(String name, int size, int price) {
        this.name = name;
        this.size = size;
        this.price = price;
    }
}



   子类



package prpject_beverage;

public class Coffee extends Beverage{
 private String remark;

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Coffee() {
    }

    public Coffee(String name, int size, int price, String remark) {
        super(name, size, price);
        this.remark = remark;
    }

    @Override
    public String showBeverage() {
        return super.showBeverage()+remark;
    }
}



package prpject_beverage;

public class Coke extends Beverage{
private String remark;

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Coke() {
    }

    public Coke(String name, int size, int price, String remark) {
        super(name, size, price);
        this.remark = remark;
    }

    @Override
    public String showBeverage() {
        return super.showBeverage()+"选择的可乐是"+remark;
    }
}



package prpject_beverage;

public class Tea extends Beverage {
    private String remark;

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Tea() {
    }

    public Tea(String name, int size, int price, String remark) {
        super(name, size, price);
        this.remark = remark;
    }

    @Override
    public String showBeverage() {
        return super.showBeverage()+remark;
    }
}


工厂类



package prpject_beverage;

import java.util.Scanner;

public class Factory {
  public static Beverage getBeverage(int choice){
      Scanner sc = new Scanner(System.in);
      Beverage b= null;
      switch (choice){
          case 1:{
              System.out.println("输入咖啡的规格");
              String size=sc.next();
              System.out.println("输入咖啡的价格");
              int price = sc.nextInt();
              System.out.println("输入咖啡的备注");
              String remark= sc.next();
              Coffee c = new Coffee("咖啡", size,price,remark);
              b=c;
          }
          break;
          case 2:{
              System.out.println("输入可乐的名称");
              String name= sc.nextLine();
              System.out.println("输入可乐的规格");
              String size = sc.next();
              System.out.println("输入可乐的价格");
              int price = sc.nextInt();
              System.out.println("输入可乐的备注");
              String remark= sc.next();
              Coke co = new Coke("可乐",size,price,remark);
              b=co;
          }
          break;
          case 3:{
              System.out.println("输入奶茶的名称");
              String name= sc.nextLine();
              System.out.println("输入奶茶的规格");
              String size= sc.next();
              System.out.println("输入奶茶价格");
              int price = sc.nextInt();
              System.out.println("输入奶茶备注");
              String remark = sc.next();
              Tea t = new Tea("奶茶",size,price,remark);
              b=t;
          }
      }
   return b;
  }
}




package prpject_beverage;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        System.out.println("选择尼需要的饮料(1、 咖啡  2、可乐  3、奶茶)");
        int choice = sc.nextInt();//选择
//        工厂提取
        Beverage beverage = Factory.getBeverage(choice);
        System.out.println(beverage.showBeverage());

    }
}


###### 运行结果及报错内容 




![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/897552293446125.png "#left")


'Coffee(java.lang.String, int, int, java.lang.String)' in 'prpject_beverage.Coffee' cannot be applied to '(java.lang.String, java.lang.String, int, java.lang.String)'
'Coke(java.lang.String, int, int, java.lang.String)' in 'prpject_beverage.Coke' cannot be applied to '(java.lang.String, java.lang.String, int, java.lang.String)'
'Tea(java.lang.String, int, int, java.lang.String)' in 'prpject_beverage.Tea' cannot be applied to '(java.lang.String, java.lang.String, int, java.lang.String)'

###### 我的解答思路和尝试过的方法 

###### 我想要达到的结果
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/783752293446179.png "#left")

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/196233293446128.png "#left")
  • 写回答

1条回答 默认 最新

  • 尘风-随手记 2022-02-09 15:55
    关注

    参数类型不匹配,你构造器需要的size是int类型,你传进去的是String类型。把size改成int类型就好了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 创建了问题 2月9日

悬赏问题

  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化