java子类和构造函数错误

时间:2014-09-01 17:56:38

标签: java subclass

我按照以下顺序为跳棋游戏提供了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;
    }

}

我错在哪里以及如何解决?

1 个答案:

答案 0 :(得分:2)

嗯,有一个问题:

private Position getPosition()

您无法从子类的构造函数访问私有方法:

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

吸气剂通常是公开的。