您認爲Java中的自動裝箱是一種多態嗎?換句話說,你認爲自動裝箱擴展了Java的多態功能嗎?多態性,自動裝箱和隱式轉換
Scala中的隱式轉換怎麼樣?
我認爲他們都是多態性的例子。這兩個功能都允許以統一的方式處理不同數據類型的值。
我的同事不同意我的看法。誰是對的?
您認爲Java中的自動裝箱是一種多態嗎?換句話說,你認爲自動裝箱擴展了Java的多態功能嗎?多態性,自動裝箱和隱式轉換
Scala中的隱式轉換怎麼樣?
我認爲他們都是多態性的例子。這兩個功能都允許以統一的方式處理不同數據類型的值。
我的同事不同意我的看法。誰是對的?
亞型多態性,幾乎 普遍稱爲只是多態性 在面向對象的 編程的上下文中,是一個 型,A,的顯示爲和類似的被使用的能力 另一種類型,B。
Scala中的隱式轉換是轉換。一個對象被轉換爲另一個對象。
自動裝箱是創建一個對象(同樣是一個轉換)。
因此,這些不是多態。
+1界面不能改變,界面的契約實現爲多態。 – 2010-05-21 16:27:02
我個人認爲自動裝箱是一種有時會出乎意料的結果。
Boolean b = null;
boolean b2 = b; // oops
自動裝箱的棘手的部分是,它不是一個真正的鑄件,其中(僅)改變類型,但以上的值的轉換。
您可以設置幾乎任何優秀的Java IDE來突出顯示自動拆箱的情況(自動裝箱總是安全的,您的示例是關於反向轉換)。 – 2010-05-22 08:15:29
也許它們在單詞的真正意義上是多態的:multi(poly)-formed(morph),因爲它們可以以不同的形式出現。但在編程方面,這不是多態... Matthieu是對的:) – Simon 2010-05-21 16:26:06