首页 > 解决方案 > 构造函数 Peca() 未定义

问题描述

我正在为一项大学作业开发一项工作。我有文件,Validador.java,Peca.java,Tabuleiro.java

Validador.java:

public class Validador {
    public static void main(String[] args) {
        if(args.length == 0) { // sem argumentos


            Tabuleiro tab = new Tabuleiro("DD--"); 
            Peca peca = tab.peca(0,0); 



        }else if (args[0].equals("filtro")) { // argumento filtro

        }
    }
}

Peca.java:

public abstract class Peca {

    Tabuleiro tab;
    int linha;
    int coluna;

    public boolean isNada; //dps corrigir
    Peca(Tabuleiro tab, int linha, int coluna) {
        this.tab = tab;
        this.linha = linha;
        this.coluna = coluna;     
    }

    boolean vazia() {
        if(isNada == true) {
            return true;
        }else {
            return false;
        }
    }

Tabuleiro.java

public class Tabuleiro extends Peca {

    String repr;    
    char tabuleiro_array[][];
    int tamanho_tabuleiro;

    Tabuleiro(String repr) {
        super();
        this.repr = repr;

    }
    Peca peca (int linha, int coluna) {
        if(this.tabuleiro_array[linha][coluna] == 'D') {
           // return Rainha(tab,linha,coluna);
        }else {
            //return Nada(tab,linha,coluna);
        }
        return null;
    }
}

我收到了这个错误:构造函数 Peca() 是未定义的

    at Tabuleiro.<init>
    at Validador . main

我知道我可以把 Tabuleiro(String repr, Tabuleiro tab, int linha, int coluna) { super(tab, linha, coluna) 但是我的教授告诉我们 Tabuleiro 只能接收一个字符串... Tabuleiro(String repr) Ideias ?

标签: javaabstract-classsubclasssuperclass

解决方案


Tabuleiro 中不应该有 Peca 构造函数。相反,只需通过 super(data1,data2) 传递成员数据:

Tabuleiro(String repr) {
        super(); // pass information here super(data1,data2), this is used to initialize the parent class
        this.repr = repr;
    }

推荐阅读