我有一個標籤:Piece set[]
,如何調用子類方法? (對象標籤)
它包含了玩家一片誰是子類的父類件 的但是當我嘗試訪問子類的方法,它是不工作..
boolean c = set[i].sub_classes_method(1, 3);
錯誤:方法sub_classes_method(INT,INT)是未定義的類型件
- 我不能用靜態方法()
- 這是唯一的問題我已經就我去(幾乎完成)
- 我沒有問題的代碼,我只是不知道如何做到這一點
感謝您的回答。 !
(從片的子類之一)
public boolean coupValide(int y_a, int x_a) { // tmp fct()
if (caseVide(x_a, y_a) == true) { // TODO: Faire les prises, travail sur
// le reste pour l'instant
if (getCouleur() == 'n') {
if (getX() == x_a && getY() == y_a - 2) // test: avancé 2 cases
{
return true;
} else if (getX() == x_a && getY() == y_a - 1) {
return true;
}
}
else if (getCouleur() == 'b')
{
if (getX() == x_a && getY() == y_a + 2) // test: avancé 2 cases
{
return true;
} else if (getX() == x_a && getY() == y_a + 1) {
return true;
}
}
}
return false;
其中i定義和使用該對象標籤[]:
public class Joueur extends Jeu {
private final int NEL = 16; // Nombre de piece du joueur
private Piece set[];
private int noJoueur;
public Joueur(int noJoueur) { // n = numero du joueur (1, 2);
set = new Piece[NEL];
this.noJoueur = noJoueur;
char tmp;
for (int i = 0; i < NEL; i++) {
if (noJoueur == 1)
tmp = 'b';
else
tmp = 'n';
if (i == 0 || i == 7)
set[i] = new Tour(tmp);
else if (i == 1 || i == 6)
set[i] = new Cavalier(tmp);
else if (i == 2 || i == 5)
set[i] = new Fou(tmp);
else if (i == 3)
set[i] = new Dame(tmp);
else if (i == 4)
set[i] = new Roi(tmp);
else if (i > 7)
set[i] = new Pion(tmp);
}
}...
- 如何調用此方法與我的片標籤[] ?? 編輯:我需要使類Piece抽象,但如何使布爾抽象的方法?
解決:對於每個子類的行爲,抽象超類做得非常好!
告訴我們,你在遇到問題的代碼片段。 –