You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java继承场景下Game构造器未定义错误求助

解决Java继承中构造器未定义错误:The constructor Game(String, int, int, double, String) is undefined

问题根源

你在Store类实例化Game对象时,第四个参数的类型不匹配:

  • Game类的构造器定义中,第四个参数是**float类型**:
    public Game(String initGameName, int initPrice, int initInventory, float initReviews, String initCompanyBy)
    
  • 但你调用时传入的4.5是**double类型**,Java不允许隐式将double转换为float(属于窄化类型转换,可能丢失精度),导致编译器找不到匹配的构造器,抛出错误。

修复方案

将调用构造器时的4.5改为4.5f(显式声明为float类型),修改Store类中的实例化代码:

// 修改前
Game item1 = new Game("Pokemon", 2000, 200, 4.5, "Nintendo");
// 修改后
Game item1 = new Game("Pokemon", 2000, 200, 4.5f, "Nintendo");

后续子类扩展注意事项

如果要实现Book、Electronics等其他子类,需确保:

  • 子类构造器的参数类型、数量、顺序,与调用时传入的参数完全匹配
  • 子类构造器通过super()正确调用父类Item的构造器(你当前Game类的super()调用逻辑是正确的,自动填充了taxable=true和category="Video Game",符合子类的默认属性设计)

内容的提问来源于stack exchange,提问作者Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:43:36