簡體   English   中英

在子類中訪問超類靜態變量

[英]Access superclass static variable in subclass

我有一個帶有靜態變量a的超類Test ,並且我還創建了一個子類Test1 ,從中我可以訪問超類靜態變量。

這是這樣做的有效方法嗎? 高度贊賞任何解釋。

public class Test {

    public static String a = "";

    Test() {
        a += "testadd";
    }
}

public class Test1 extends Test {

    public Test1() {
        a += "test1add";
    }

    public static void main(String args[]){
        Test1 test1 = new Test1();
        System.out.println(a);
    }
}

靜態變量是類變量,您可以使用classname.variablename訪問它們。

public class Test {

    public static String a = "";

    Test() {
        a += "testadd";
    }
}

public class Test1 extends Test {

    public Test1() {
        Test.a += "test1add";
    }

    public static void main(String args[]) {
        Test1 test1 = new Test1();
        System.out.println(a);
    }
}

您可以使用subclass object.superClassStaticFieldSuperClassName.superClassStaticField對其進行訪問。 后一種是訪問靜態變量的靜態方法。

例如:

public class SuperClassStaticVariable {
    public static void main(String[] args) {
        B b = new B();
        b.a = 2; // works but compiler warning that it should be accessed as static way
        A.a = 2; // ok 
    }
}

class A {   
    static int a;
}
class B extends A {}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM