假设我有两个类SuperClass并且SubClass其 extends SuperClass,如下所示:
public abstract class SuperClass {
private Object field1;
protected SuperClass(Object obj) {
setField1(obj);
}
public void setField1(Object obj) {
// perform some check on obj and
// then set field1 such that field1==obj
}
}
public class SubClass extends SuperClass {
public SubClass(Object obj) {
super(obj);
}
@Override
public void setField1(Object obj) {
super.setField1(obj);
// do some work that is necessary only when
// field1 is set through SubClass.setField1()
}
}
我需要的是,当我创建 的对象时SubClass,我需要SuperClass.setField1()从SuperClass构造函数内部调用方法,而不是SubClass.setField1(). 但是在上面的代码中,SubClass.setField1()调用了导致 aNullPointerException被抛出的方法,因为完成的工作SubClass.setField1()是在一个尚未为空的字段上执行的。
有没有办法SuperClass.setField1()从SuperClass构造函数内部显式调用?
慕哥6287543
相关分类