0

Is static variable of superclass avilable to sub-class. i.e i mean static variable of superclass can we access in sub-class without creating object N without using ClassName.

3 Answers 3

3

The same visibility constraints apply to static and non-static variables. So this is possible:

public class SuperClass {
    /*
     * public would also work, as would no modifier 
     * if both classes are in the same package
     */
    protected static String foo;
}

public class SubClass extends SuperClass {
    public void modifyFoo() {
        foo = "hello";
    }

    public void modifySuperFoo() {
        /*
         * does the exact same thing as modifyFoo()
         */
        SuperClass.foo = "hello";
    }
}
Sign up to request clarification or add additional context in comments.

5 Comments

but then you could not access SuperClass.foo.
@vinay_rockin Yes, you can. You can also write SuperClass.foo = "hello"; instead of foo = "hello"; and it will achieve the exact same result.
please see my edited answere and let me know if it is incorrect.
Lotzer, I am using c# and it does not work for me as I cannot access protected static variable by ClassName.variable. but I will take it as you say and read more on internet :).
@vinay_rockin The question is about Java, so my answer is also about Java. C# may behave differently in this case.
2

In super class:

public static int staticVarName = 42;

In sub-class:

System.out.println("value: " + ClassName.staticVarName);

Comments

2

The whole point of static variables/methods is that you can access them without creating an instance of the class.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.