1. 程式人生 > >private修飾的成員變數和方法不能被繼承?

private修飾的成員變數和方法不能被繼承?

看完程式碼就懂了:

public class B extends A {
    public static void main(String[] args) {
        B b = new B();
        System.out.println(b.getVal2());
        System.out.println(b.getVal1());
        System.out.println(b.getVal2());
    }
}

class A {
    final int val1 = 1;
    private int val2 = 2;

    final int getVal1() {
        setVal2(3);
        return val1;
    }

    private void setVal2(int val2) {
        this.val2 = val2;
    }

    final int getVal2() {
        return val2;
    }
}

輸出結果:

2
1
3

 

所以,private修飾的方法可以被繼承,簡單的說,子類可以繼承父類所有成員變數和屬性(內部類除外),包括final或private修飾的,只不過子類繼承父類的private屬性或方法時,子類不能直接去呼叫他。但是可以通過從父類繼承來的方法呼叫他。