[請益] 類別的繼承與記憶體配置

作者: enter036 (enter036)   2015-10-30 10:29:08
大家好,大欸賀,胎嘎賀,
這邊想請教一個關於類別與繼承上記憶體配置的問題問題。
我現在手邊的書是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>

Links booklink

Contact Us: admin [ a t ] ucptt.com