Re: [問題] 新手問abstract method

看板java作者 (寂寞是一種病)時間15年前 (2010/12/09 21:37), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《chenchen142 ()》之銘言: : interface a{String toString();} : interface b{String m();} : class c{ : public static void main(String[] args){ : //實作toString()並印出 : System.out.println(new a(){public String toString(){return "a";}}); 這邊你sysout的是 new a類別(物件) 的 .toString() 但因為你override了此類別的toString方法並讓它return "a" 所以輸出就是a了 : //實作m()並印出 : System.out.println(new b(){public String m(){return "b";}}); 這邊你sysout的是 new b物件 的 .toString() 而你並沒有override toString() 所以 輸出的就是原本物件的hashcode囉(還是地址?這點還請強者解答) : //宣告一個bb, 實作m()並印出 : b bb = new b(){public String m(){return "b";}}; : System.out.println(bb.m()); 這邊就是sysout bb.m()的return值"b" : } : } : 結果輸出: : a : c$2@c17164 : b : 有一行印出奇怪的東西 : 為啥實作抽象方法如果不用toString()的話就要宣告一個變數起來 : 再呼叫才能正確顯示字串 : 還是我誤會什麼了 如果有說明不清的地方還請多多包涵:P -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.48.47

12/09 21:48, , 1F
API 上寫的很清楚 :) http://tinyurl.com/25el2fg
12/09 21:48, 1F

12/09 21:53, , 2F
Integer.toHexString(hashCode())
12/09 21:53, 2F

12/09 22:07, , 3F
2個月前看不懂 現在總算看懂了orz
12/09 22:07, 3F
文章代碼(AID): #1D0DkfrU (java)
文章代碼(AID): #1D0DkfrU (java)