Я немного смущен, я думал, что это должно сработать. Его просто родительский и дочерний класс, я не могу понять, почему а) затмение жалуется, и б) переопределенный метод не вызывается в экземпляре объекта.Переопределение не работает
public class Selector {
private Node rootNode;
private Grid childGrid;
public Selector(){
super();
}
public Selector(Grid childGrid){
this();
this.childGrid = childGrid;
}
public Selector(Node rootNode,Grid childGrid){
this();
this.rootNode = rootNode;
this.childGrid = childGrid;
}
private ArrayList<ArrayList<String>> filter(ArrayList<String> keys){
return null;
}
private ArrayList<ArrayList<String>> innerEneryOrder(ArrayList<ArrayList<String>> children){
return children;
}
private ArrayList<ArrayList<String>> outerEneryOrder(ArrayList<ArrayList<String>> children){
return children;
}}
Хорошо, вот производный класс:
public class StandardSelector extends Selector {
@Override
private ArrayList<ArrayList<String>> filter(ArrayList<String> keys){
ArrayList<ArrayList<String>> ret = new ArrayList<>();
for (String s: keys){
ArrayList<String> aL = new ArrayList<String>();
aL.add(s);
ret.add(aL);
}
return ret;
}}
Итак, где проблема?
Закрытые методы нельзя переопределить, потому что их нельзя увидеть за пределами класса, в котором они определены. –