① 업캐스팅(Upcasting) 서브 클래스 인스턴스를 "슈퍼 클래스의 타입"으로 참조한다 업 캐스팅은 항상 성공한다 as 연산자를 사용해서 할 수도 있다 (컴파일 시점에 캐스팅 가능 여부를 결정한다) as : "컴파일 시점"에 타입 캐스팅(업캐스팅)을 하며, 실패할 경우 에러가 발생한다. 패턴 매칭(switch)에도 사용한다 서브 클래스의 인스턴스를 슈퍼 클래스의 타입으로 참조하는 것을 업캐스팅이라고 함 => 사용할 수 있는 기능은 업캐스팅된 부분에 한정이됨, teacher은 person이라는 것을 상속받는다고 할때 업캐스팅을 하면 person의 기능에 한정지어 사용하게됨. ② 다운캐스팅(Downcasting) 슈퍼 클래스 인스턴스를 "서브 클래스의 타입"으로 참조한다 업캐스팅된 인스턴스를 다시 원래 ..