Right now in some Java code I have something like this
class A {
 void f() {
 }
 A() {
  f();
 }
}
class B extends A{
 @Override
 void f() {
  //do some stuff
  super.f();
 }
}
class C extends B {
 @Override
 void f() {
  //do some stuff
  super.f();
 }
}
I want to have f() called and then iterate upwards through each parent class, running the overridden f(). I do this by calling super.f() explicitly, although I'd like to not have to do this.
The reason why I do this is there post processing that must be done after the constructor in A is reached. And there is state in each class that much be properly init'd, which is why we have the upward trace of f()'s. 
So the constructor of A is really
A() {
  //init some state in a
  f(); //run f(), which will depend on the previous operation
}
If I do something like new C(); I want C.f() called, then B.f() called, then A.f() called
Anyway, if there is a smarter way of doing this, I'm open to it.
 
     
     
    