유도 클래스의 객체 생성 과정

page 285

**유도 클래스의 객체생성 과정에서 기초 클래스의 생성자는 100% 호출된다.
**유도 클래스의 생성자에서 기초 클래스의 생성자 호출을 명시하지 않으면 않으면
기초클래스의 void 생성자가 호출된다.

유도 클래스의 객체 생성 과정에서는 생성자가 두번 호출된다. 하나는 기초 클래스의 
생성자이고, 다른 하나는 유도 클래스의 생성자이다.

*사실 생성자의 호출이 완료되지 않았으므로 객체라 부를 수 없는 상태이다.

코드를 보니 SoBase클래스를 상속하고 있는게 아닌가.. 그래서 기초 클래스의 생성자
호출을 위해 이니셜라이저를 살피게 된다.
이렇게 기초 클래서의 생성자 호출이 완료되고, 이를 인해서 기초 클래스의 멤버 변수가
먼저 초기화된다. 이어서 호출은 되었지만 아직 완전히 실행이 끝나지 않은 유도 클래스의
생성자 실행이 완료되면서,유도 클래스의 멤버 변수도 초기화가 완료된다.

** 복잡해 보이지만 실질적으로는 기초 클래스의 생성자 호출이 추가된 것이 전부이다.

아무런 내용도 명시되지 않으면 기초 클래스의 void생성자를 대신 호출하게 된다.

기초 클래스의 생성자와 유도 클래스의 생성자가 모두 호출된다는 사실을 알려야 한다.
다음의 기본 원칙이 유도 클래스의 객체 생성과정에서도 지켜져야 함.

"클래스의 멤버는 해당 클래스의 생성자를 통해서 초기화 해야 한다."