int[] data = new int[3]; //일반배열
Army[] data = new Army[3];//객체배열
data[0] = 1;
data[1] = 2;
data[2] = 10;
data[0] = new Army();
data[1] = new Army();
data[2] = new Army();
Unit[] unit = new Unit[3];
// 배열의 요소 할당 과정에서 암묵적 형변환이 일어난다.
unit[0] = new Army();
unit[1] = new Navy();
unit[2] = new AirForce();
for(int i = 0); i<unit.length; i++){
unit[i].attack();
}
배열의 각 요소가 확장한 기능을 사용하기 위해서는 원래 클래스 형태로 명시적 형변환이 이루어 져야 한다.
하지만 반복적으로 처리되는 과정에서 몇 번째 요소가 어떤 클래스에서 최초 생성되었는지를 판단하기란 쉽지 않다.
instanceof 연산자는 어떤 객체에 대한 출처를 판단하여 boolean형태로 결과를 반환한다.
if(unit[0] instanceof Army){
Army temp = (Army)unit[0];
temp.tank();
}
//true 값이 나올것이기 때문에 그러면 실행해야할 동작을 넣는다.