Как следует из названия, я пытаюсь сделать что-то вроде этого:
public abstract class ClassA{
private String var;
...
protected void setVar(String var){
this.var = var
};
protected String getVar(){
return this.var
};
}
public class ClassB extends ClassA{
public ClassB(...){
object.setListener(new Listener(){
@Override
public void onItemSelected(data ...){
// Would like to do:
var = data;
// BUT:
// CANT CALL VAR since its a private String of Class A
// CANT CALL setVar(data) since it will end up looping
// CANT CALL super.setVar(data) since super dosn't point to ClassA in here
};
});
}
@Override
protected void setVar(String var){
super.setVar(var);
// DO MORE STUFF WHICH WILL CALL THE LISTENER
};
}
Конечно, я мог бы сделать var публичным, но это не то, что я хочу!var должен оставаться защищенным, изменения должны происходить только с помощью установщиков.
Есть ли способ?