※ 引述《noapaov (單身漢)》之銘言:
: 請問一下各位大大關於泛型操作上的問題,
: ParentList p = new ChildList();
: 這段code 代表變數p可以呼叫parentList的所有成員, 而執行的時候是呼叫childList.test()實體
: 但我在使用泛型的時候, 假設我使用如下
: ArrayList obj = new ArrayList<Integer>();
: 其實等同 ArrayList<Object> obj = new ArrayList<Integer>();
: 表示我可以加入任何的物件到obj裡面, 問題來了, 我所產生的物件<T>是Integer
: 編譯器沒有報錯我的理解是因為我宣告的是ArrayList<Object> obj,
: 但為什麼我在 "執行" obj.add("test"); 加入字串時, 運行時也不會有問題
: 甚至我在執行obj.get(0), 他印出的還是"test", 而不是數字 ?
Object o = "test";
System.out.println(o);
System.out.println(o.toString());
and keyword Polymorphism