构造函数Peca()未定义。

问题描述 投票:0回答:1

我正在开发一个工作的大学assigment.I有文件,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?

java abstract-class subclass superclass
1个回答
0
投票

你不应该在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;
    }
© www.soinside.com 2019 - 2024. All rights reserved.