Java 私有字段并重写getter和setter方法

Java 私有字段并重写getter和setter方法,java,Java,我有一个这样的抽象类: public abstract class Block { private boolean collided = false; public boolean hasCollided() { return collided; } public void markCollided() { collided = true; } } 我有4个子类的块类。这些类还需要接收冲突变量。这意味着这两个方法应该被

我有一个这样的抽象类:

public abstract class Block {
    private boolean collided = false;

    public boolean hasCollided() {
        return collided;
    }

    public void markCollided() {
        collided = true;
    }
}
我有4个子类的块类。这些类还需要接收冲突变量。这意味着这两个方法应该被Block的4个子类覆盖。我怎样才能让它工作

如果我试图重写它,它将显示错误,因为子类中不包含这样的变量

如何在所有子类中接收冲突变量

此外,我还创建了一个块类数组,该数组包含4个子类对象。在遍历数组时,是否可以为每个对象的冲突变量设置不同的值?
简而言之,collided变量对于数组中的每个对象都是唯一的?

您需要使用公共方法hasCollided、markCollided等,因为collided是类块的私有变量


事实上,4个子类扩展了块,这并不意味着可以访问私有字段。块提供的public HasCollide,MarkCollide访问其私有变量。

您不能直接访问冲突变量,因为它是私有的。但是 可以使用超类的HasCollide方法返回父类的Collide变量

public class subBlock {


public boolean hasCollided() {
    return super.hasCollided();
}

public void markCollided() {
    super.hasCollided()= true;
}
}

不要让它受到保护private@ScaryWombat为什么?这些方法是公共的和继承的。如何在所有子类中接收冲突的变量?呼叫HasCollidemethod@ManasaScaryWombat的意图是-您不应该尝试从子类访问属性,而是使用方法检查状态-子类不应该关心propertyCollided变量对于4个元素不能是唯一的。它只能有2个值。对或错。你说的独特是指独立?是的,实例变量就是这样工作的。