상위 클래스(Animal)를 하위 클래스(Human)이 상속받는 경우, Animal ani = new Human(); 이라는 코드를 쓸 수 있다. 이때, 하위 클래스는 상위 클래스의 자료형인 Animal을 사용한다. 그렇기 때문에 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. 만약, 필요에 따라 하위 클래스가 원래의 자료형인 Human으로 되돌아가야 하는 경우에는 어떻게 할까? 상위 클래스로 형 변환되었던 하위 클래스를 다시 원래의 자료형으로 형 변환하는 것을 다운 캐스팅(down casting)이라고 한다. 다운 캐스팅을 할 때 주의해야 할 점이 있다. 상속 관계를 살펴 보면 모든 인간은 동물이지만 반대로 모든 동물은 인간이 아니다. 따라서 다운 캐스팅을 하기 전에 상위 클래스로..