상속 및 개체 생성에 대해 혼란스러워하며 아래 예제에서 어떤 개체가 완벽하게 구성되었는지 이해하려고합니다. 나는이 프로그램을 실행하면Java에서 계층 구조 이해
class example
{
public static void main (String[] args)
{
System.out.println("starting...") ;
A localAinMain = new A() ; // object created
B localBinMain = new B() ; // object created
C localCinMain = new C() ; // object created
System.out.println("...finishing") ;
return ;
}
}
class A
{
// class fields
protected static int objectNo = 0 ;
private static C staticCinA = new C() ; // object created
// instance fields
public final int serialNo = ++objectNo ;
public A() { System.out.println("\tA.A[" + serialNo + "] - ctor\n") ; }
static { System.out.println("\tA - static initializer\n") ; }
}
class B extends A
{
// class fields
private static B staticBinB = new B() ; // object created
// instance fields
private A instanceAinB = new A() ; // object created
public B() { System.out.println("\tB.B[" + serialNo + "] - ctor\n") ; }
static { System.out.println("\tB - static initializer\n") ; }
}
class C extends B
{
// class fields
private static A staticAinC = new A() ; // object created
// instance fields
private B instanceBinC = new B() ; // object created
public C() { System.out.println("\tC.C[" + serialNo + "] - ctor\n") ; }
static { System.out.println("\tC - static initializer\n") ; }
}
, 나는 누군가가 CC [11]와 AA [11]와 같은 객체 생성 순서를 설명 할 수있는 경우
starting...
A.A[1] - ctor
A.A[2] - ctor
B.B[1] - ctor
B - static initializer
A.A[3] - ctor
C - static initializer
A.A[4] - ctor
A.A[5] - ctor
B.B[4] - ctor
A.A[6] - ctor
A.A[7] - ctor
B.B[6] - ctor
C.C[4] - ctor
A - static initializer
A.A[8] - ctor
A.A[9] - ctor
A.A[10] - ctor
B.B[9] - ctor
A.A[11] - ctor
A.A[12] - ctor
B.B[11] - ctor
A.A[13] - ctor
A.A[14] - ctor
B.B[13] - ctor
C.C[11] - ctor
...finishing
내가 "localCinMain 될 것 궁금 아래의 출력을 얻을 "하지만 왜 어떤 도움을 주는지 이해하지 못합니다.