private修飾的成員變數和方法不能被繼承?
阿新 • • 發佈:2018-12-03
看完程式碼就懂了:
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屬性或方法時,子類不能直接去呼叫他。但是可以通過從父類繼承來的方法呼叫他。