您会认为Java中的自动氧化是一种多态性的形式吗?换句话说,您认为自动氧化会扩展Java的多态性功能吗?

Scala中的隐式转换呢?

我认为它们都是多态性的例子。这两种功能都允许以统一的方式处理不同数据类型的值。

我的同事不同意我。谁是对的?

有帮助吗?

解决方案

维基百科:

亚型多态性在面向对象的编程的背景下几乎普遍称为多态性,是一种类型A的能力,例如另一种类型。

Scala中的隐式转换是转换。一个对象将转换为另一个对象。

Autoboxing是对象的创建(再次,转换)。

因此,这些不是多态性。

其他提示

我个人认为自动氧化是一种有时出乎意料的结果的黑客攻击。

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

Autoboxing的棘手部分是它并不是真正的铸件,它(仅)会更改类型,而是更是一个值转换。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top