자바에서 캐스팅(casting)은 형변환, 타입을 변경시키는 것을 뜻한다. 부모와 자식의 관계 즉 상속 관계에서 상위클래스에 속하는 슈퍼클래스와 하위 클래스에 속하는 서브 클래스의 형변환을 캐스팅이라고 하고 서브 클래스가 슈퍼클래스로 변환되는 것을 업캐스팅, 그 반대를 다운캐스팅이라고 한다. 업캐스팅 자바의 상속관계는 상위클래스의 모든 특성을 하위 클래스가 받아서 사용할 수 있다. 그 말은 서브 클래스는 수퍼클래스 취급을 받을수 있다는 말인데 여기서 업캐스팅을 통해 객체가 슈퍼클래스 타입으로 형변환을 시킨다. 위의 코드에서 25행 부분만 이런식으로 바꿨는데 자동으로 JVM이 컴파일하면서 인식하지만 굳이 붙여준 이유는 관행상 부모 유형을 명시하는건 권장한다고 한다!! 그렇다면 업캐스팅은 왜 사용하는 것일까..