1. 이종모음(Heterogeneous Collection)
→ 배열에 다형성을 적용시키는 원리
- 배열은 원래 동종모음 구조
// 기본형 자료형으로 만든 배열 예시
// 다른 자료형을 넣을 수 없음
int [] iArr = {1, 2, 3, 4, 5, "인프라"}; // 오류 발생
// A 자료형의 힙 주소를 배열로 저장 가능한 배열 생성
A[] aArr = new A[2];
A a1 = new A();
A a2 = new A();
aArr[0] = a1;
aArr[1] = a2;
위와 같이 동종모음인 경우에만 배열 생성이 가능하다.
☆ 다형성을 이용하면 이종모음 구조의 객체 배열 생성이 가능하다.
// 모든 클래스의 부모클래스인 Object 배열을 선언하면
// 다형성 원리(부모 객체를 요구하는 자리에 자식타입을 대입 가능함)에 의해
// 모든 자료를 다 대입할 수 있음.
Object[] oArr = new Object[3];
B b1 = new B();
// aArr[1] = b1; // A타입을 요구하는 배열에 B타입 대입 불가
oArr[0] = b1;
oArr[1] = a2;
oArr[2] = 100; // Object 배열에는 기본형 자료도 대입 가능
위와 같이 다형성 원리에 의해 이종모음 구조의 객체 배열 생성이 가능한 것을 확인할 수 있다.