Skip to content
Advertisement

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

JavaScript

Child.java

JavaScript

This code prints “Parent”.

Also read at few locations concept of data hiding.

Parent.java

JavaScript

Child.java

JavaScript

Now the output is “Child”.

So does this mean that static variables are inherited but they follow the concept of data-hiding?

Advertisement

Answer

Please have a look into the documentation of oracle: http://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#d5e12110

Static variables are inherited as long as they’re are not hidden by another static variable with the same identifier.

Advertisement