There is no way to do this in Java. However, you can declare another method that is abstract and call it. Like this:
public final String foo() { String intermediate = ...
This way you will be forced to override calculateFinalResult . No call to the super instance required. Also, subclasses will not be able to override your foo() , as it is declared as final .
source share