성장일기

Object 클래스

 자바에서 Object클래스는 모든 클래스 상속계층도의 최상위에 있는 조상클래스이다. 아래와 같이 다른 클래스로부터 상속 받지 않는 모든 클래스들은 자동적으로 Object클래스로부터 상속받게 한다.

class Tv{
...
}

위의 코드를 컴파일 하면 컴파일러가 위의 코드를 아래와 같이 자동적으로 extends Object를 추가하여 Tv클래스가 Object클래스를 상속받도록 한다. 이렇게 함으로써 Object클래스가 모든 클래스의 조상이 되도록한다.

class Tv extends Object{
...
}

 

 

 

class CaptionTv extends Tv{
...
}

 위와같이 만일 CaptionTv클래스가 다른 클래스인 Tv를 상속 받는다고 하더라도 CaptionTv클래스의 조상클래스인 Tv클래스, 만약Tv클래스의 조상클래스가 있다면 쭉 타고 올라가다 보면 결국 마지막 최상위 조상은 Object클래스가 될 것이다. 따라서 이미 어떤 클래스를 상속받도록 작성된 클래스는 컴파일러가 extends Object를 추가하지 않는다. 

 

 

 

 

 만일 Tv클래스가 있고, Tv클래스를 상속받는 CaptionTv클래스가 있다면 상속계층도는 다음과 같다. 이처럼 모든 상속계층도의 최상위에는 Object클래스가 위치하고, 따라서 자바의 모든 클래스들은 Object클래스의 멤버들을 상속받기 때문에 Object클래스에 정의된 멤버들을 사용할 수 있다.

 

 인스턴스의 toString()이나 equals(Object o)같은 메소드를 따로 정의하지 않고도 사용할 수 있었던 이유는 이 메소드들이 Object클래스에 정의되어 있기 때문이다.

 

 Object클래스에는 toString(), equals(), hashCode()와 같은 모든 인스턴스가 가져야 할 기본적인 11개의 메소드가 정의되어 있다. Object클래스는 java.lang패키지에 정의되어있다.

 

공유하기

facebook twitter kakaoTalk kakaostory naver band