[問題] 新手問abstract method

看板java作者時間15年前 (2010/12/09 14:00), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/2 (看更多)
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";}}); //實作m()並印出 System.out.println(new b(){public String m(){return "b";}}); //宣告一個bb, 實作m()並印出 b bb = new b(){public String m(){return "b";}}; System.out.println(bb.m()); } } 結果輸出: a c$2@c17164 b 有一行印出奇怪的東西 為啥實作抽象方法如果不用toString()的話就要宣告一個變數起來 再呼叫才能正確顯示字串 還是我誤會什麼了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.101.40

12/09 14:08, , 1F
toString是Object提供的method,print裡頭放obj就會印toString
12/09 14:08, 1F

12/09 14:34, , 2F
簡單說你在這裡呼叫到的是 Object.toString
12/09 14:34, 2F

12/09 14:36, , 3F
而不是你自己寫的 b.m 其原因如一樓所言
12/09 14:36, 3F
文章代碼(AID): #1D072OjQ (java)
文章代碼(AID): #1D072OjQ (java)