downcasting 이란?
- 상위 클래스 타입의 객체를 하위 클래스 타입으로 변환하는 것
ex) 부모클래스 => 자식클래스
=> 이렇게하면 하위 클래스에 속한 메소드나 인스턴스에 접근 가능
단, 실제 객체가 downcast 하려는 타입과 호환되지 않을 경우 런타임 오류 발생
데이터 처리에서의 downcasting
- 데이터 표현력이 높은 클래스에서 낮은 클래스로의 형변환
ex) float64 => float32
장점:
- 메모리 사용량 감소
- 연산 속도 증가
단점:
- 정보 손실(강제로 형변환을 했을 경우. 데이터 표현력 감소)
- 정수 타입의 경우 downcasting으로 인해 오버 플로우가 발생할 가능성이 있음