看板 java 關於我們 聯絡資訊
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
tkcn:toString是Object提供的method,print裡頭放obj就會印toString 12/09 14:08
LPH66:簡單說你在這裡呼叫到的是 Object.toString 12/09 14:34
LPH66:而不是你自己寫的 b.m 其原因如一樓所言 12/09 14:36