2014-09-01 59 views
-1

我有3类用于跳棋游戏java的子类和构造错误

Position以下顺序 - 包含有关一块(在游戏元件)的位置的方法和变量。

Piece - 抽象类,它包含检查器和裁片通用的一般方法。

King - 包含

King类,我有以下的构造上,我遇到错误

public class King extends Piece 
{ 
    public King(Piece checker) 
    { 
     super(checker.getColor(),checker.getPosition()); 
    } 
} 

Piece类我有以下相关王片方法:

public abstract class Piece { 

    private Position newPiecePosition; 
    private CheckersColor pieceColor; 


    /** 
    * Create new piece (checker/king) 
    * @param color - color of the new piece 
    * @param position - position of the new piece 
    */ 
    public Piece(CheckersColor color, Position position) 
    { 
     pieceColor = color; 
     newPiecePosition = new Position(position); 
    } 


    private Position getPosition() 
    { 
     Position position = new Position(newPiecePosition.getColumn(), newPiecePosition.getRow()); 

     return position; 
    } 

} 

我在哪里错了,如何解决它?

+3

你为什么不指定错误? – 2014-09-01 17:57:11

+0

getColor在哪里? – 2014-09-01 18:00:53

+1

安装者和吸气者应该是公开的,这就是要点。 – csmckelvey 2014-09-01 18:02:52

回答

2

那么,一个问题:

private Position getPosition()

你不能从子类的构造函数访问的私有方法:

public King(Piece checker) 
{ 
    super(checker.getColor(),checker.getPosition()); // you are getting a 
                // compilation error here 
} 

吸气剂通常是公开的。

+0

这是练习的限制, 超出那些描述的任何额外的方法,应该是私人的 – user1977050 2014-09-01 18:07:14

+0

老师要求私人方法?用反思来夸大他:3但是,严重的是,如果你的老师教你写私人吸气剂,我为你(wo)男人感到难过。 – kajacx 2014-09-01 18:15:22

+0

我写了。 Position类中有getter。 我如何访问它? – user1977050 2014-09-01 18:29:41