java子類訪問父類的變數么
Ⅰ java中為什麼子類仍然可以通過繼承公共方法訪問父類的私有變數
那是因為父類中的私有變數在父類中被方法調用了,當子類執行的時候回默認執行父類中的構造方法,所以是可以的,舉例:
父類
public class A {
private int x =5;
public void setX(int x) { this.x = x; }
public int getX() { return this.x; }
}
子類
public class B extends A { }
這個時候如果通過「B.getX();」輸出的結果就是:5;
Ⅱ JAVA中子類引用父類成員變數
因為 private double chang; private double kuan; 私有變數只能在類內部訪問,子類是不能訪問的所以
super.chang=a;super.kuan=a;不行,而且Rectangle沒有無參構造方法,所以必須用super(a,a)來實例化。
如果想super.chang=a;super.kuan=a;的還 先把private 改成protected 這樣子類才能訪問的到。另外再給Rectangle加無參構造方法,這樣才能不通過super(a,a)來實例化父類
Ⅲ java 中Private變數如何在子類中訪問
子類是不能夠直接訪問父類中的private變數的
可行的解決方法有:
①將變數的訪問許可權修飾詞改為public或者protected或者default(什麼都不寫)
②在父類中寫一個public的成員方法獲得private變數的值
示例代碼如下:
用這種方法是比較安全的,變數控制為私有,通過get方法得到它的值,通過set方法修改它的值
Ⅳ 關於子類訪問父類私有成員變數問題,大神來看看
樓上說錯了,就只有一個B實例,沒有A實例。
繼承的概念,就是把父類的所有東西都繼承下來了,包括A類的x成員變數和所有方法,只是在B類里無法直接訪問x變數而已。
所以創建的B實例的內存里,也是有x,並為它分配了內存空間的