我有两节课:
public abstract class Parent{
Object parentObj;
public abstract Object something();
}
和
public class Child extends Parent{
@Override
public Object something(){
return new Object();
}
}
每次调用
parentObj
方法时,有什么方法可以在父级中设置something()
吗?我不想在每个孩子中都设置
parentObj
。 最佳答案
当然:
public abstract class Parent{
Object parentObj;
public final Object something() {
parentObj = ...;
return doSomething();
}
protected abstract Object doSomething();
}
和
public class Child extends Parent{
@override
protected Object doSomething(){
return new Object();
}
}
这就是所谓的模板方法模式。
关于java - 在子级中调用抽象方法时填写父级变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40947755/