I know this is pointless: I just find it funny and I want to inquire more about the mechanics of what happens when you create a class that inherits itself, resulting in a stack
Extending oneself generates an error of cyclic inheritance (which java doesn't allow). Your code sample does compile and is valid.
Due to Vladimir Ivanov's persistence, I will fix my edit.
Your code throws a StackOverflowError
because of the following.
Inside o = new Inside(0);
Since Inside
extends Outside
, Inside
first calls the super()
method implicitly (since you've not called it yourself). Outside()
constructor initializes Inside o
and the cycle runs again, until the stack is full and it overflow (there's too many Inside
and Outside
inside the heap stack).
Hope this helps especially Vladimir Ivanov.