Object 배열

이번에는 Object 배열을 알아보자. Object는 모든 타입의 객체를 담을 수 있다. 따라서 Object[] 을 만들면 세상의 모든 객체를 담을 수 있는 배열을 만들 수 있다.

  package lang.object.poly;
  public class ObjectPolyExample2 {
	  public static void main(String[] args) {
			Dog dog = new Dog();
			Car car = new Car();
			Object object = new Object(); //Object 인스턴스도 만들 수 있다.
			Object[] objects = {dog, car, object};
      size(objects);
		}

		private static void size(Object[] objects) {
			System.out.println("전달된 객체의 수는: " + objects.length);

		}
}
전달된 객체의 수는: 3
Object[] objects = {dog, car, object};

//쉽게 풀어서 설명하면 다음과 같다.
Object objects[0] = new Dog();
Object objects[1] = new Car();
Object objects[2] = new Object();

Object 타입을 사용한 덕분에 세상의 모든 객체를 담을 수 있는 배열을 만들 수 있었다.

스크린샷 2025-03-09 오후 7.34.01.png

size(Object[] objects) 메서드는 배열에 담긴 객체의 수를 세는 역할을 담당한다.

이 메서드는 Object 타입만 사용한다. Object 타입의 배열은 세상의 모든 객체를 담을 수 있기 때문에, 새로운 클래스가 추가되거나 변경되어도 이 메서드를 수정하지 않아도 된다. 지금 만든 size() 메서드는 자바를 사용하는 곳이라면 어디든지 사용될 수 있다.

Object가 없다면? 만약 Object 와 같은 개념이 없다면 어떻게 될까?

물론 Object 가 없어도 직접 MyObject 와 같은 클래스를 만들고 모든 클래스에서 직접 정의한 MyObject 를 상속받으면 된다. 하지만 하나의 프로젝트를 넘어서 전세계 모든 개발자가 비슷한 클래스를 만들 것이고, 서로 호환되지 않는 수 많은 XxxObject 들이 넘쳐날 것이다.