1. 程式人生 > >靜態變數 && 靜態方法 的 繼承

靜態變數 && 靜態方法 的 繼承

public class A {
    static String a = "suppera";
    static String b = "supperb";


    public static void printA() {
        System.out.println(a);
    }
    /*
    public static void printB() {
        System.out.println(b);
    }*/
    public static void main(String[] args) {
// B繼承自A的靜態方法,注意:B中雖然也定義了a的值(B.a),但是因為呼叫的printA是A中的方法,他列印的是A中的靜態變數a(A.a)的值
B.printA(); //[1]
// 如果B中沒有定義printB(),這裡呼叫的會是A中的printB(),但是因為B中也定義了B的printB(),所以這裡呼叫的是B自己的方法,所以
//列印的也是B中靜態變數b(B.b)的值
B.printB(); //[2]
// B也可以直接呼叫a,如果B中沒有重新定義,就呼叫繼承自A的a變數,重新定義了,就呼叫它自身的a
System.out.println(B.a);
}


}


class B extends A {
    static String a = "suba";
    static String b = "subb";
    
    public static void printB() {
        // 如果B中沒有重新定義b,這裡呼叫的會是A.b,重新定義之後,呼叫的就是B.b
        System.out.println(b);
    }
}