2010-05-21 5 views
2

Java에서 autoboxing을 다형성의 형태로 간주 하시겠습니까? 다른 말로하면 autoboxing이 Java의 다형성 (polymorphic) 기능을 확장한다고 생각합니까?다형성, Autoboxing 및 암시 적 변환

스칼라에서 암시 적 변환은 어떻게됩니까?

제 생각에 그들은 다형성의 예입니다. 두 기능 모두 다른 데이터 유형의 값을 동일한 방식으로 처리 할 수 ​​있습니다.

제 동료가 저와 동의하지 않습니다. 누가 옳은가? Wikipedia에서

+0

아마 다형 (poly (poly) -formed (morph))이라는 단어의 진정한 의미에서 다형성이있을 수 있습니다. 하지만 프로그래밍 측면에서 이것은 다형성이 아닙니다 ... Matthieu 맞습니다 :) – Simon

답변

7

:

서브 타입 다형성은 보편적으로 객체 지향 프로그램의 맥락에서 단지 다형성 라는 거의 는로 표시하고처럼 사용할 수 하나 형, A,의 능력이다 다른 유형, B.

스칼라의 암시 적 변환은 변환입니다. 하나의 객체가 다른 객체로 변환됩니다.

자동 보봇 (Autoboxing)은 객체 생성 (다시 말하면 변환)입니다.

따라서 다형성이 아닙니다.

+1

+1 인터페이스가 변경되어서는 안되며 인터페이스의 계약이 다형성을 만족해야합니다. –

1

저는 개인적으로 오토 박싱을 일종의 해킹으로 간주하여 예기치 않은 결과를 얻었습니다.

Boolean b = null; 
boolean b2 = b; // oops 

오토 박싱의 까다로운 부분은 정말 (전용) 유형을 변경하지만 값 변환 더 주조되지 않는 것입니다.

+1

거의 모든 좋은 Java IDE를 설정하여 자동 언 박싱의 발생을 강조 할 수 있습니다 (자동 반전은 항상 안전합니다. 예를 들어 역 변환에 관한 것입니다). –