I have read at 1000\'s of locations that Static variables are not inherited. But then how this code works fine?
Parent.java
public c
This is not exactly inheritance, its more like sharing having access to the static attribute of the class you are extending unless you are hiding it by declaring the same identifier in you subclass, note that in case of instance attribute if you change the value of the inherited attribute it will be changed in the super instance which was instantiated for your object but if there is another hierarchy which will be supposedly blind to your hierarchy it will not be affected.
In the case of static the parent attribute will be changed and any other hierarchy will take this effect too.