java 。隐式 super 构造函数 Settore() 未定义。必须显式调用另一个构造函数

标签 java constructor undefined subclass

当我从 Settore 类创建子类 Alieni 时,我收到错误“隐式 super 构造函数 Settore() 未定义。必须显式调用另一个构造函数”,我看过类似的问题,给出的答案是放置一个我的 Settore 类中的默认构造函数,我已经完成了,但仍然遇到相同的错误

public class Settore {
            private Nome settoreNome;
            private char letteraX;
            private final int coordinataX;
            private final int coordinataY;
            private int giocatoriPresenti;


public static void main(String[] args) {
    // TODO Auto-generated method stub

}
public int getGiocatoriPresenti() {
    return giocatoriPresenti;
}
public void setGiocatoriPresenti(int giocatoriPresenti) {
    this.giocatoriPresenti = giocatoriPresenti;
}
public char getLetteraX() {
    return letteraX;
}

public void setLetteraX(char letteraX){
    this.letteraX = letteraX;
}

public Settore (){}//suggestion given, still doesn't fix the problem, it just makes it worse
public Settore (int coordinataX, int coordinataY){
        char myChar =letteraX;
        int i=(int)myChar;
        this.coordinataX=i-97;
        this.coordinataY=coordinataY-1;
    }
    public int getX(){
        return coordinataX;
    }
    public int getY(){
        return coordinataY;
    }
    public Nome getSettoreNome() {
        return settoreNome;
    }
    public void setSettoreNome(Nome settoreNome) {
        this.settoreNome = settoreNome;
    }
    }
    public enum Nome {
    SICURO, PERICOLOSO, SCIALUPPA, ALIENI, UMANI
    }


    public class Alieni extends Settore {

        public Alieni() {//this is where i get the error Implicit super constructor Settore() is undefined. must explicitly invoke another constructor

            setSettoreNome(Nome.ALIENI);
        }

    }

最佳答案

即使您添加默认构造函数,它也会显示错误,因为您声明的最终变量应该具有一些值。它们应该在默认构造函数中分配值,如下所示:

 public Settore (){
    coordinataX=5;
    coordinataY=22;
  }

另一种方式,如果您想使用已声明的参数化构造函数:

          public Alieni() 
          {
                super(5,6);  //call to super class constructor
                setSettoreNome(Nome.ALIENI);
          }

关于 java 。隐式 super 构造函数 Settore() 未定义。必须显式调用另一个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302949/

相关文章:

JavaScript:innerHTML 输出未定义,尽管 console.log 输出正确的值

java - 多次成功连接后无法创建与数据库服务器的连接

java - 使用 JXL 将图像插入到 excel 文件而不拉伸(stretch)它

java - 如何计算单选按钮的下拉菜单并将结果保存到空白文本字段?

c++ - 构造函数 MyClass(QWidget *parent = 0) 中 (QWidget *parent = 0) 的含义;

c++ - 创建类的实例

c - 访问未定义的外部数组

php - 访问存在的数组元素时 undefined offset

java - JpaRepository 不返回任何我的自定义查询

python - 使用函数创建 sympy 矩阵