多型、自動ボクシング、および暗黙的な変換
-
04-10-2019 - |
質問
Javaの自動ボクシングは多型の一形態であると考えていますか?別の言い方をすれば、オートボクシングはJavaの多型機能を拡張すると思いますか?
Scalaでの暗黙の変換はどうですか?
私の意見では、それらは両方とも多型の例です。どちらの機能も、異なるデータ型の値を均一な方法で処理することができます。
私の同僚は私に同意しません。誰が正しいですか?
解決
から ウィキペディア:
オブジェクト指向プログラミングのコンテキストでほぼ普遍的にJust Polymorphismと呼ばれるサブタイプの多型は、1つのタイプAが別のタイプのように表示され、B。のように使用される能力です。
Scalaの暗黙的な変換は変換です。 1つのオブジェクトが別のオブジェクトに変換されます。
オートボクシングは、オブジェクトの作成です(再び、変換)。
したがって、これらは多型ではありません。
他のヒント
私は個人的には、自動ボクシングは時々予期しない結果を伴うハックのようなものだと考えています。
Boolean b = null;
boolean b2 = b; // oops
オートボクシングのトリッキーな部分は、実際にはキャストではないことです。
所属していません StackOverflow