public class B extends A{
// code goes here
}
public class C extends B{
public void method1(){
C c = new C();
}
}
由於C擴展B,擴展B繼而擴展A,當我創建C的對象時,將在JVM中創建多少個對象。在JVM中創建對象
public class B extends A{
// code goes here
}
public class C extends B{
public void method1(){
C c = new C();
}
}
由於C擴展B,擴展B繼而擴展A,當我創建C的對象時,將在JVM中創建多少個對象。在JVM中創建對象
將直接創建一個對象。我說「直接」,因爲初始化表達式或構造函數代碼可以使用「new」創建其他對象。
創建一個C對象將導致4所構造函數調用。在C構造函數的主體之前,有一個對B構造函數的顯式或隱式調用。同樣,B的構造函數調用A構造函數,該構造函數調用Object構造函數。
該對象是一個C,並且是一個B,並且是一個A,並且是一個對象,並且在該過程結束時將被初始化爲它們中的每一個。
欲瞭解此流程的完整細節,請參閱the JLS。
一,C
類型。要在這裏補充一下,使答案在長的30個符號......
答案是1 呼叫new C()
創建確實延伸B
擴展A
本身一個對象,所以你可以使用從B和A繼承功能
您是否對此主題做過任何研究? –
擴展另一個類的類中的對象不需要來自父類的對象工作。它只是將這些類用作模板,然後從它自己的類中創建一個對象。 –
如果它想訪問父類中的某些變量,該怎麼辦 – bhalkian