我有两节课:

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/

10-14 11:39
查看更多