Are static variables inherited
I have read at 1000's of locations that Static variables are not inherited. But then how this code works fine? Parent.java public class Parent { static String str = "Parent"; } Child.java public class Child extends Parent { public static void main(String [] args) { System.out.println(Child.str); } } This code prints "Parent". Also read at few locations concept of data hiding. Parent.java public class Parent { static String str = "Parent"; } Child.java public class Child extends Parent { static String str = "Child"; public static void main(String [] args) { System.out.println(Child.str); } }