Object 클래스

자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스이다

클래스에 상속 받을 부모 클래스가 없으면 묵시적으로 Object 클래스를 상속 받는다

package lang.object;

public class ObjectMain {
		public static void main(String[] args) {
				Child child = new Child();
				child.childMethod();
				child.parentMethod();
				
				// toString()은 Object 클래스의 메서드
				String string = child.toString();
				System.out.println(string);
				}
}

image.png

  1. child.toString()을 호출한다
  2. 먼저 본인의 타입인 Child에서 toString()을 찾는다. 없으므로 부모 타입으로 올라가서 찾는다
  3. 부모 타입인 Parent에서 찾는다. 없으므로 부모 타입으로 올라가서 찾는다.
  4. 부모 타입인 Object에서 찾는다. ObjecttoString() 이 있으므로 이 메서드를 호출한다.

자바에서 Object 클래스가 최상위 부모 클래스인 이유

Object 다형성

Object를 활용한 다형성의 한계

⇒ 다형성을 제대로 활용하려면 다형적 참조 + 메서드 오버라이딩을 함께 사용 해야 한다