You are 'accessing a static member via instance' which is not acorrect programming habit. Compiler will translate 'a2.i' to 'a.i' andthat's the reason of your surprise