我按照以下顺序为跳棋游戏提供了3个课程
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;
}
}
我错在哪里以及如何解决?
答案 0 :(得分:2)
嗯,有一个问题:
private Position getPosition()
您无法从子类的构造函数访问私有方法:
public King(Piece checker)
{
super(checker.getColor(),checker.getPosition()); // you are getting a
// compilation error here
}
吸气剂通常是公开的。