作者Apohades (寂寞是一种病)
看板java
标题Re: [问题] 新手问abstract method
时间Thu Dec 9 21:37:42 2010
※ 引述《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
2F:→ Apohades:Integer.toHexString(hashCode()) 12/09 21:53
3F:→ Apohades:2个月前看不懂 现在总算看懂了orz 12/09 22:07