Hi there,
As you might have already run the program. The answer is A.
Here is how I understand it:
1. class A is nested in interface.
2. it is treated like any interface var i.e. static and final
3.
Test implements I
4. so Test inherits class A as an static nested class.
5. inner class B is extending A but not changing any functionality
6. B inherits doStuff() from A.
7. Object type is B, so the inherited version of doStuff() is called.
Only question in my mind is that if class A is treated as a static and final member from interface, why was it allowed to be extended?
[ October 02, 2003: Message edited by: Barkat Mardhani ]