다운 캐스팅은 기본 클래스 (또는 인터페이스)에서 서브 클래스 또는 리프 클래스로 캐스트하는 것을 의미합니다.
다운 캐스트의 예로는 System.Object
다른 유형 으로 캐스트 할 수 있습니다 .
다운 캐스팅은 인기가없고 코드 냄새 일 수 있습니다. 객체 지향 교리는 예를 들어 다운 캐스팅 대신 가상 또는 추상 메서드를 정의하고 호출하는 것을 선호합니다.
- 다운 캐스팅을위한 적절하고 적절한 사용 사례는 무엇입니까? 즉, 어떤 상황에서 다운 캐스트되는 코드를 작성하는 것이 적절합니까?
- 답변이 "없음"인 경우 왜 언어에서 다운 캐스팅을 지원합니까?
ToString
). Java는 C #에서 지원하는 제네릭을 지원하지 않기 때문에 다른 예제는 "Java 컨테이너"입니다. stackoverflow.com/questions/1524197/downcast-and-upcast 는 다운 캐스팅 이 무엇인지 알려 주지만 적절한 시기에 대한 예는 없습니다 .
before Java had support for generics
아닙니다 because Java doesn't support generics
. 그리고 amon은 당신에게 해답을 주었다. 당신이 작업하는 타입 시스템이 너무 제한적이고 그것을 바꿀 위치에 있지 않을 때.