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

Java报错High类构造方法无法匹配给定参数,该错误的产生原因是什么?

报错原因分析

这个报错是Java继承场景下构造方法调用规则不满足导致的,具体原因如下:

  1. Java子类构造方法执行前,默认会隐式调用父类的无参构造方法super(),该调用会被编译器自动插入到子类构造方法的第一行。
  2. 当父类High显式定义了接收String类型参数的构造方法后,Java不会再为High类自动生成默认的无参构造方法。
  3. 你写的子类Main的构造方法没有显式调用父类的有参构造,编译器自动插入的super()无参调用找不到匹配的父类构造方法,就会抛出该错误,提示High类的构造方法和传入的参数类型不匹配。

修复方案

有两种常见的修复方式,任选一种即可:

  • 方案1:在子类构造方法的第一行,显式调用父类的有参构造方法,传入所需参数:
public Main(String s)
{
    super(s); // 必须放在构造方法第一行
    System.out.print("From Low");
}
  • 方案2:为父类High额外定义一个无参构造方法:
class High
{
    // 新增无参构造
    public High()
    {
    }

    public High(String s)
    {
        System.out.print("From High");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:45:04