Hi! As you already know the static varible is common to all the instance of the class and same way it is also common to all the instance of the class that are derived from it. So If you try to change the value from Test.i or subTest.i, will affect on the same variable and that is the reason for the given output.