Object는 모든 타입의 객체를 담을 수 있다.
따라서, Object[]을 모든 참조 타입(Object를 상속한 객체)를 담을 수 있다.
package poly;
public class ObjectPolyExample2 {
static void main(String[] args) {
Dog dog = new Dog();
Car car = new Car();
Object object = new Object();
Object[] objects = {dog, car, object};
size(objects);
}
private static void size(Object[] objects) {
System.out.println("전달된 객체의 수는 " + objects.length);
}
}
Object 타입의 배열은 세상의 모든 객체를 담을 수 있기 때문에, 어떤 새로운 클래스가 추가되어도 Object를 받는 구조는 변경할 필요가 없다.
즉, 코드가 “타입 변화에 열려 있다”.
서로 다른 타입이지만 Object 배열 하나로 묶을 수 있다.