我有一个标签: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抽象,但如何使布尔抽象的方法?
解决:对于每个子类的行为,抽象超类做得非常好!
告诉我们,你在遇到问题的代码片段。 –