스타크래프트에서 부대 지정했을 경우
부대를 지정하는순간 객체배열로 묶어지며 암묵적 형변환이 이루어 진다.
즉, 각 객체에서 재정의한 기능들은 사용하지 못한다는 뜻.
ex)
마린,파이어벳은 공통된 스팀팩을 가지고 있으므로 사용가능
통상적으로 테크가 높은 유닛이 여러종류의 유닛이 부대로 묶였을 때 부모클래스로 지정됨.
객체배열과 객체의 암묵적형변환이 이루어져서
부모클래스에서 정의되지 않은 스킬은 부대에서 쓰지 못한다.
question) 왜 그런지 이해못함
스타 2에서는 여러 종류의 유닛을 묶어도 tab키를 눌러 유닛의 종류를 바꿔가며 스킬을 사용할 수 있다
기본적인 명령은 공통사항으로 모두에게 적용되지만 ,유효한 스킬은 하나만 사용가능
여러 유닛이 스킬을 써도 한 유닛만이 스킬을 사용하는 경우가 있다(마나낭비 방지)
ex) 고위기사 - 사이오닉 스톰
instanceof 연산자
반복문 안에서 사용할 경우
배열의 크기나 인덱스의 위치에 종속되지 않고,
배열에 속해 있는 모든 객체들에 대해 명시적 형변환을 처리할 수 있다.
하지만 마린,파이어벳,메딕 조합으로 한부대를 지정하면 기본적인 명령(공격,이동 등)밖에 못내림
(메딕이 부모클래스로 잡혔기 때문)
댓글 없음:
댓글 쓰기