Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top