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

看板Programming作者 (enter036)時間9年前 (2015/10/30 10:29), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
大家好,大欸賀,胎嘎賀, 這邊想請教一個關於類別與繼承上記憶體配置的問題問題。 我現在手邊的書是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
文章代碼(AID): #1MCjNsdZ (Programming)
文章代碼(AID): #1MCjNsdZ (Programming)