이전 글들을 통하여 다형성을 활용하여 업캐스팅(up casting)이 된다는 것을 알게 되었다. 여기에서는 다시 하위 클래스로 형 변환(다운캐스팅)이 되는 과정을 살펴보자. 위와 같은 계층 구조에서 상위 클래스를 자료형으로 선언하는 Animal ani = new Human( ); 코드를 쓸 수 있다. 이때 생성된 인스턴스 Human은 Animal형이다. 이렇게 Animal 형으로 형 변환이 이루어졌을 때는 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. 다시말해 Human 클래스에 더 많은 메서드가 구현되어 있고 다양한 멤버 변수가 있다고 하더라도 자료형이 Animal형인 상태에서는 사용할 수 없는 것이다. 따라서 필요에 따라 다시 원래 인스턴스의 자료형(여기에서는 Human형)으로..