Java – forces abstract methods to execute predefined code – similar to overloaded return statements
I have an abstract class of abstract methods
public abstract class Foo{
public int bar();
}
This is inherited and implemented by ordinary classes using some methods
public class ConcreteFoo1 extends AbstractFoo{
public void bar(){
method1();
method2();
closingMethod();
return 1;
} }
public class ConcreteFoo2 extends AbstractFoo{
public void bar(){
method3();
method4();
closingMethod();
return 2;
} }
As you can see, both classes end with closingmethod(); Ending the use of the peer - implemented bar () method is crucial to the framework I use There is no way to enforce through the parent class The lack of better words makes it "semi abstract", in which the first n lines are defined in the subclass and the end lines are defined by the parent class Ideally, I want to overload the return statement or implement the method destructor
Is there any way to achieve this goal?
Solution
I may implement it by defining a non abstract method in foo, which I call the abstract method bar and closingmethod(), for example,
public abstract class Foo {
public void foo() {
bar();
closingMethod();
}
public abstract void bar();
}
Update after OP editing:
In fact, it can complicate things, but you may do something
public abstract class Foo {
public int foo() {
bar();
closingMethod();
return baz();
}
protected abstract void bar();
protected abstract int baz();
}
