我正在为大学招募工作。
我有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){
超级(标签,linha,coluna)
但是我的教授告诉我们,Tabuleiro只能接收一个字符串... Tabuleiro(String repr)
爱迪亚?

最佳答案

您不应该在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;
    }

07-27 18:19