top
那請問這樣指派給wrapper class之父類別也就是object物件亦算是autoboxing嗎?


是的!

且這樣的指派算是多型嗎?


autoboxing 為 Integer 實例後,再指定給 Object 的 reference name … 就這邊只是 is-a 的關係 …

另外想請問關於autounboxing之發生情況


在基本型態指定給相關物件型態時,會發生 autoboxing,在 wrapper 型態要進行基本型態才能進行之運算時(例如 + - * / 等),會發生 auto-unboxing …

== 不會發生 auto-unboxing … 物件與物件之間本來就可以使用 == 比較,還是會比較 reference ...

對 wrapper 物件使用 println 方法,只會呼叫它的 toString,不會發生 auto-unboxing ...

TOP

那請問這是auto-boxing除了基本對於基本型別及其對應包裹類別之轉型外唯一之特例嗎?


不是特例,因為編譯器知道等號右邊是個基本型態,就雞婆地幫你轉了 ...

但這種子類別物件被指派給父類別型別變數之方式不是應該就是多型嗎?is a kind of?


就是編譯器檢查一下 Integer is an Object 這樣的邏輯是不是正確的,多型操作的話,我會比較傾向於,放在進一步以公開協定進行操作這上面使用,例如:
  1. Object o = 1;
  2. System.out.println(o.toString());
複製程式碼
不過,也有人會說這就是多型沒錯,對名詞的定義不同而已,不用太執著 …

但想弄清楚的是到底有哪些特例是如==一樣不會自動發生?


你指的大概是重載這類的情況 …
http://openhome.cc/Gossip/Java/Overload.html

只是因為他是直接印出原本的值 這麼說應該是Interger類別override object類別之toString方法 並改為印出該物件所autoboxing之變數值囉?


YES!

TOP

我不懂你所謂將常數轉為long型別是指什麼?Autoboxing 只是語法蜜糖而已,Long l = 5 的話,編譯器會用 Long.valueOf(5),Integer i = 5 的話,編譯器會用 Integer.valueOf(5)。

公開協定就是指外界可見的那些方法,像是 public。

你的問題並不在 autoboxing,你的問題在於不清楚 == 在 Java 中的意義:

http://openhome.cc/Gossip/JavaEssence/EqualOperator.html

TOP