My opinion is that it is not recursive, because it isn't calling the same function.
The real question is how would Blah() ever be called? I assume that the where the first Blah is, is abstract, and you have redefined the function in a child class. You can only create an instance of the child class, so I'm not sure the Blah() function would ever be called.
For example:
abstract class Foo{ public Foo(); abstract int Blah(){return ((Child)this).Blah();} }
public class Child extends Foo { public Child(); public int Blah(){return Blah();} }
public class Junk { public void main() { Foo temp = (Foo)(new Child()); temp.Blah(); } }
If that were the case, I think only the child class would be called, not the base class's implementation... |