객체 생성시 즉, 캐스팅 관계는 다음과 같다.

부모를 두고 자식이 부모 = 자식, 부모 = 부모, 자식 = (자식)부모 캐스팅 가능하나 자식 = 부모 캐스팅은 안된다.

이것은 OOP를 해 본 사람이라면 당연히 알 것이다.

이 글을 쓴 것도 훈스에 놀러 갔다가 퇴근5분전 님이 올린 댓글을 보고 그냥 생각나서 끄적여 본다.

흔히들 패턴에 맞춰서 코드를 생성하다 보면 함정에 빠진다.

당연히 1번과 2번의 관계면 생성 되서 다형성 형태로 만들 수 있겠지 하는 그런 생각.

그렇다고 함정에 빠지는 사람이 많다고 생각하지 않는다. 상속 관계를 어느정도 이해를 하는 사람들은...

하지만 다형성을 구현하고 할 경우에는 항상 숙지 해 둬야한다고 생각한다.