문제

Would you consider autoboxing in Java to be a form of polymorphism? Put another way, do you think autoboxing extends the polymorphic capabilities of Java?

What about implicit conversions in Scala?

My opinion is that they are both examples of polymorphism. Both features allow values of different data types to be handled in a uniform manner.

My colleague disagrees with me. Who is right?

도움이 되었습니까?

해결책

From Wikipedia:

Subtype polymorphism, almost universally called just polymorphism in the context of object-oriented programming, is the ability of one type, A, to appear as and be used like another type, B.

Implicit conversions in Scala are conversions. One object gets converted to another object.

Autoboxing is the creation of an object (again, a conversion).

Therefore, these are not polymorphism.

다른 팁

I personally consider autoboxing as kind of a hack with sometimes unexpected results.

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

The tricky part of autoboxing is that it isn't really a cast, which (only) changes the type, but more of a value conversion.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top