ArrayList的toString方法為什么輸出的不是地址值呢?

package com.czff.study.interview.toString;

import java.util.ArrayList;
import java.util.Collection;

/**
 * @author cuidi
 * @date 2020/9/5 14:06
 * @description
 */
public class ArrayList2String {
    public static void main(String[] args) {
        /**
         * 為什么c輸出的不是地址值呢?
         *     A:Collection c = new ArrayList();
         *     這是多態(tài),所以輸出c的toString()方法,其實是輸出ArrayList的toString()
         *     B:看ArrayList的toString()
         *     而我們在ArrayList里面卻沒有發(fā)現toString()。
         *     以后遇到這種情況,也不要擔心,你認為有,它卻沒有,就應該去它父親里面看看。
         *     C:
         *     ArrayList<E> extends AbstractList<E>
         *     AbstractList<E> extends AbstractCollection<E>
         *     AbstractCollection的toString()的方法源碼
         */
        Collection c = new ArrayList();
        c.add("hello");
        c.add("world");
        c.add("java");
        /**
         * 對于這段代碼: System.out.println(c);
         * 想看他是怎么輸出的,點擊println看它的源碼
         * 發(fā)現是按String.valueOf(obj)輸出的,繼續(xù)點進去
         * 發(fā)現sout是按對象的toString方法輸出的
         * 那再去看ArrayList的toString是怎么重寫的就好了
         */
        System.out.println(c);
        System.out.println(c.toString());
    }
}
Diagram for ArrayList.png
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容