作者enter036 (enter036)
看板Programming
标题[请益] 类别的继承与记忆体配置
时间Fri Oct 30 10:29:08 2015
大家好,大欸贺,胎嘎贺,
这边想请教一个关於类别与继承上记忆体配置的问题问题。
我现在手边的书是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://webptt.com/cn.aspx?n=bbs/Programming/M.1446172150.A.9E3.html
※ 编辑: enter036 (122.254.44.80), 11/01/2015 00:18:18
※ enter036:转录至看板 java 11/01 00:19