[請益] 類別的繼承與記憶體配置
大家好,大欸賀,胎嘎賀,
這邊想請教一個關於類別與繼承上記憶體配置的問題問題。
我現在手邊的書是INTRODUCTION TO JAVA(Y. DANIEL),
在讀到繼承章節時,有提到data/methods 會因為能見度而決定存取權限,
而在繼承時,記憶體的配置讓我很想不透,範例如下(均在same pkt):
public class C1(){
public int x;
protected int y;
private int u;
protected void m(){}
}
public class C3 extends C1{
can access x;
can access y;
can access z;
cannot access u;
can invoke m();
}
請問C1跟C3的所有資料是否是使用同一塊記憶體呢?
就我的理解是,C1跟C3若是規劃不同的記憶體,
那這樣好像就不用有存取上的問題,因為是獨立的配置@@
但若是配置同個記憶體,那當有其他類別繼承C1時,
data field不會亂掉嗎? 被複寫掉之類的。
另外同範例內還有一個非繼承的類別C2,裡面直接new個obj o,
public class C2{
C1 o = new C1();
can access o.x;
can access o.y;
can access o.z;
can not access o.u;
can invoke o.m();
}
在obj生成的話,也是在獨立劃分一個區塊給o的所有資料使用嗎?
觀念有點混亂也很糟,還有勞前輩指教了<0>
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.254.46.51
※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1446172150.A.9E3.html
※ 編輯: enter036 (122.254.44.80), 11/01/2015 00:18:18
※ enter036:轉錄至看板 java 11/01 00:19
Programming 近期熱門文章
PTT數位生活區 即時熱門文章