본문 바로가기

Programming/Java

상속 - 2

1. 상속과 생성자




부모 클래스의 생성자가 없을 시에, 자식 클래스에게 부모 클래스를 상속시키려고 하면 에러메세지가 뜬다.

이를 이용하여 상속에는 생성자가 관련되어 있음을 알 수 있다. 에러메세지를 읽어보면 부모클래스에 기본 생성자가 정의되지 않았다는 내용의 에러 메세지를 뿜는다.




강제로 A클래스를 호출해보면 A의 기본 생성자가 없다는 메세지가 뜬다. 그 이유는 부모클래스와 자식클래스의 상속 관계에서 부모클래스의 생성자를 먼저 실행하기 때문이다. 생성자를 이용해 부모클래스를 호출해 정보를 사용하는 시스템이라는걸 알 수 있는 부분이다.


결국 계속해서 자식은 부모를 호출하며, 부모클래스는 자신의 부모클래스를, 또 그 위 클래스를 연속해서 호출하게 되는데 이것을 연쇄 호출이라 한다.


그렇다면 맨위 클래스, 그러니까 모든 부모클래스의 최상위인 시조 클래스는 어떻게 되는것인가? 에 대한 의문이 생길 수 있다.


api를 읽어보면 알겠지만 모든 클래스의 최상위 클래스는 Object 클래스이다. Object에는 모든 객체에서 쓸 수 있는 함수들이 들어있기 반대로 생각해보면 매우 당연히 최상위 클래스가 되어야 한다. 때문에 상속받으면 항상 최상위 클래스는 Object클래스이며, Object클래스에 들어있는 메소드들을 사용하기 위해서는 상속을 받음에 있어서 생성자가 제대로 생성되어야 함을 알 수 있다.







'Programming > Java' 카테고리의 다른 글

Singletone pattern / Synchro  (0) 2016.01.21
override & overload [오버라이딩 & 오버로딩]  (1) 2016.01.20
상속  (0) 2016.01.19
JAVA Static 변수 생성 주기  (0) 2016.01.15
JAVA Static 변수  (0) 2016.01.15