如何从子类访问属性[field]并在子类的构造函数中创建它?

时间:2018-03-18 18:38:42

标签: java

  

我有这段代码:

 public class Zabojnik {
            private String oznaka;
            private int maksimalnaTeza;
            private int maksimalnoSteviloPredmetov;
            **private Object  predmeti[];**
            }.....
  

我想在我的子类的construcor中创建 Object predmeti []

public class HladilniZabojnik extends Zabojnik {

    public HladilniZabojnik() {
    }

    public HladilniZabojnik(String oznaka, int maksimalnoSteviloPredmetov, int maksimalnaTeza) {
        super(oznaka, maksimalnoSteviloPredmetov, maksimalnaTeza);

    }

}
  

如何在不将predmeti []更改为受保护的情况下执行此操作???

1 个答案:

答案 0 :(得分:0)

如果您已经有该字段的setter:

public HladilniZabojnik(String oznaka, int maksimalnoSteviloPredmetov, int maksimalnaTeza) {
    super(oznaka, maksimalnoSteviloPredmetov, maksimalnaTeza);
    setPredmeti(new Object[size]); // use the size you need/want
}

如果没有setter,但您确实可以访问父类,则可以更改或添加其他构造函数:

class Zabojnik {
    // fields
    // optional constructor of 3 fields
    public Zabojnik(String oznaka, int maksimalnoSteviloPredmetov, int maksimalnaTeza, Object[] predmeti) {
        // ... rest of the constructor or call to this() with the 3 fields
        this.predmeti = predmeti;
    }
}