Porbably Manish is trying to understand. So, to him, to know what can be done and what can not be done is more important than a wrong or right technique.

In my earlier post, I clarified that to access a static member, you need declaration of that type So, Super1 s; now you can say s.test(); Here s is not static. The same thing you are achieving through super. So, you are accessing static method via a non-static reference. Manish, either you wrongly interpreted my earlier post, or I have not clearly put my point straightforward.