Object 클래스
자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object
클래스이다.
자바에서 Object 클래스가 최상위 부모 클래스인 이유
모든 클래스가 Object
클래스를 상속 받는 이유는 다음과 같다.
- 공통 기능 제공
- 다형성의 기본 구현
공통 기능 제공
객체의 정보를 제공하고,이 객체가 다른 객체와 같은지 비교하고, 객체가 어떤 클래스로 만들어졌는지 확인하는 기능은 모든 객체에게 필요한 기본 기능이다.
이런 기능을 객체를 만들 때 마다 항상 새로운 메서드를 정의해서 만들어야 한다면 상당히 번거로울 것이다.
그리고 막상 만든다고 해도 개발자마다 서로 다른 이름의 메서드를 만들어서 일관성이 없을 것이다.
Object
가 제공하는 기능은 다음과 같다.
- 객체의 정보를 제공하는
toString()
- 객체의 같음을 비교하는
equals()
- 객체의 클래스 정보를 제공하는
getClass()
- 기타 여러가지 기능
다형성의 기본 구현
부모는 자식을 담을 수 있다. Object
는 모든 클래스의 부모 클래스이다. 따라서 모든 객체를 참조할 수 있다.
Object
클래스는 다형성을 지원하는 기본적인 메커니즘을 제공한다. 모든 자바 객체는 Object 타입으로 처리될 수 있으며, 이는 다양한 타입의 객체를 통합적으로 처리할 수 있게 해준다.
쉽게 이야기해서 Object
는 모든 객체를 다 담을 수 있다. 타입이 다른 객체들을 어딘가에 보관해야 한다면 바로 Object
에 보관하면 된다.