2014년 1월 5일 일요일

[7-7] 생성자 호출순서(조상_자손)

class Parent {
int x = 100;

Parent() {
this(200); // Parent (int x) 를 호출
}

Parent(int x) {
this.x = x;
}

int getX() {
return x;
}
}

class Child extends Parent {
int x =3000;

Child() {
this(1000); // Child(int x) 를 호출
}

Child(int x) {
this.x = x;
}
}


class Exercise7_7 {
public static void main(String[] args) {
Child c = new Child();

System.out.prinln("x = " + c.getX() );
}
}

//------------------------------모범답안------------------------------------------
/*
Child() -> Child(int x) -> Parent() -> Parent(int x) -> Object()
실행결과 => x=200

Child(int x) {
super(); // Parent() 를 호출
this.x = x;
}
* 컴파일 후 위와같은 코드로 바뀐다. super() 는 Child 클래스의 조상 클래스인                     Parent 클래스의 기본생성자를  의미한다.
*/

댓글 없음:

댓글 쓰기