2014-02-06 50 views
2

這種情況: 我有父類PARENT。 延伸專利的幾個類。JAVA內存使用擴展類

所以問題是:在內存中創建儘可能多的副本副本,因爲有CHILDS。或者在內存中,所有CHILDS只有一個副本?

+0

請不要將其命名爲'PARENT'。 – Maroun

+0

內存中沒有父母...... – assylias

+0

也許我說的不好。每個孩子都複製PARENT的方法? – Edgar

回答

4

每個CHILD方法和每個PARENT方法等只有一個副本。每個CHILD對象都有其每個類的非靜態字段,每個PARENT的非靜態字段以及每個Object的非靜態字段。

+0

所以如果我有方法DO()在父母和10個孩子擴展PARENT,所以在內存中,我將有10個方法DO()的副本? – Edgar

+1

對象的非靜態字段? ;-) – assylias

+0

@Edgar否,您將擁有一個DO()副本,除非有一個或多個子類覆蓋它,在這種情況下,每個覆蓋子類都需要它自己的副本。 –

0

一個類的實例由其父項字段和它自己的字段組成。 B的

class A { 
    int a; 
} 

class B extends A { 
    int b; 
} 

實例是一個實例(不創建一個實例),其具有2個字段:整數a和INT b