Полиморфизм, автобокс и неявные преобразования - PullRequest
2 голосов
/ 21 мая 2010

Считаете ли вы автобокс в Java формой полиморфизма? Иными словами, как вы думаете, автобокс расширяет полиморфные возможности Java?

А как насчет неявных преобразований в Scala?

Мое мнение таково, что они оба являются примерами полиморфизма. Обе функции позволяют обрабатывать значения разных типов данных единообразно.

Мой коллега не согласен со мной. Кто прав?

Ответы [ 2 ]

8 голосов
/ 21 мая 2010

Из Википедия :

Подтип полиморфизм, почти повсеместно называемый просто полиморфизмом в контексте объектно-ориентированного программирования, представляет собой способность одного типа, A, выглядеть каки использоваться как другой тип, B.

Неявные преобразования в Scala являются преобразованиями.Один объект преобразуется в другой.

Автобокс - это создание объекта (опять же, преобразование).

Следовательно, это не полиморфизм.

1 голос
/ 21 мая 2010

Лично я считаю автобокс своего рода взломом с иногда неожиданными результатами.

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

Хитрая часть автобокса заключается в том, что это на самом деле не приведение, которое (только) меняет тип, а скорее преобразование значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...