Hi...This is quite simple...they are creating an object for inner class and they are calling a method present inside the inner class.
new A().new B() will create an object for B. So new A().new B().m1(); will invoke method m1().
Inside that they are printing 4 things... (1). this.s1 which means s1 present in the class B..--->B (2). super.s1 which means s1 in the class SuperB.--->SuperB (3). A.this.s1 which points to s1 in the class A --->A (4). A.super.s1 which points to s1 in the class SuperA--->SuperA
So output will be B, SuperB, A, SuperA. Clear???
SCJP 1.4, SCWCD 1.4, SCBCD 1.3, NEXT--->IBM XML
What do you have to say for yourself? Hmmm? Anything? And you call yourself a tiny ad.
Free, earth friendly heat - from the CodeRanch trailboss