作者chenchen142 ()
看板java
標題[問題] 新手問abstract method
時間Thu Dec 9 14:00:53 2010
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