如何重寫java數組的toString方法?實現打印數組的時候可以打出內容,而不是打印地址。int[] a = {1,2,3};
System.out.println(a);數組也是一種引用類型,那么這種引用類型的實現源碼在哪呢?
2 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
嚴格來講,java無法重寫/覆蓋任何類本身的方法,只能通過繼承,在子類中重寫,但此時原先那個類的方法實際上并沒有改變。
所以,無法做到你說的,重寫數組的toString方法然后下次打印數組的時候就會按照自定義的方式打印了。
比如
class Parent { public void m() { ... } } class Child entends Parent { public void m() { ... } } Parent p = new Parent(); p.m();
最終p調用的仍然是自己的m方法,而不是子類中定義的。
不過這一問題對某些其他語言來說倒是可以實現,比如javascript,python。這些語言可以直接改變某個類,改變后可影響到所有該類的實例(無論是之前創建的還是之后創建的)。
第二個問題,數組是java的內置類型,其并不是由java語言實現的。要想找實現代碼就得去虛擬機的源碼中找了。
添加回答
舉報
0/150
提交
取消