子類訪問父類成員
首先當子類繼承了父類,因此子類(當繼承方式為public或
protected
時)可以訪問及改動父類的public成員,但訪問或改不了私有成員和不可訪問變數
② java子類中如何訪問和修改父類成員
根據父類成員的訪問許可權修飾詞分為兩種情況:
①父類成員域由private修飾,那麼在子類中不能直接訪問父類成員域,但是可以通過父類中的公共方法訪問以及修改父類成員域。如:
class FatherClass{
private int a;
public int geta(){ return a;}
public void seta(int a){this.a=a;}
}
則在子類中可以通過geta獲得父類的成員域的值,通過seta修改父類成員域的值
②父類成員由public或protected或default(不寫訪問許可權修飾詞),在子類中可以直接訪問父類成員域,可以修改繼承的父類成員域,但是不能直接修改父類本身的成員域(可以通過上面所說的public void seta(int a){this.a=a;}對父類本身的成員域進行修改),以下是示例代碼:
父類本身的a與子類從父類繼承的a占據兩個不同的獨立的存儲空間,在繼承之後,他們的值互不相干(繼承的時候進行值傳遞),這樣可以避免因為子類中的操作而導致對父類的a的值進行預期結果之外的修改
③ C#中在子類中訪問父類成員的關鍵字是什麼
使用base.調用父類裡面的屬性
public class parent
{
public string a;
}
public class child :parent
{
public string getparent()
{
return base.a;
}
}
④ 關於子類訪問父類私有成員變數問題,大神來看看
樓上說錯了,就只有一個B實例,沒有A實例。
繼承的概念,就是把父類的所有東西都繼承下來了,包括A類的x成員變數和所有方法,只是在B類里無法直接訪問x變數而已。
所以創建的B實例的內存里,也是有x,並為它分配了內存空間的
⑤ C++ 用子類定義的對象 怎麼調用父類的成員函數
不一定,要按繼承方式分三種情況討論。
public繼承:
可以調用基類中被protected和public修飾的成員變數與成員函數。
protected繼承:
可以調用基類中被public修飾的成員變數與成員函數。
private繼承:
不可以調用基類中任何成員變數與成員函數。