亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何限制直接調用超類型類的方法,并且只能通過子類型類methode使用java中的子類?

如何限制直接調用超類型類的方法,并且只能通過子類型類methode使用java中的子類?

慕娘9325324 2021-12-01 17:01:44
我正在編寫一個擴展 ArrayList 類的算法。這里,使用算法類的實例,可以調用 ArrayList 的所有方法。我如何限制只能調用算法類中定義的方法,而算法類只能通過以下方式訪問所有 ArrayList 的方法自己的方法???謝謝
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

不要擴展ArrayList. 而是將其實例化為私有成員字段。這樣您就可以完全控制列表。例如


public class YourList<T> {

    private ArrayList<T> list;


    public YourList() {

        list = new ArrayList<>();

    }

    // example method

    public void add(T t) {

        list.add(t);

    }


}

我添加了一個類型參數,T因為您不想使用原始類型。你會像這樣使用它


YourList<String> list = new YourList<>();

list.add("String");

YourList<Integer> otherList = new YourList<>();

list.add(1);


查看完整回答
反對 回復 2021-12-01
?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

您不必“強迫”您的用戶調用您的子類。

按照設計,Java 將僅運行在子類中重寫的方法,給定ArrayList. 超類ArrayList將提供 API(您不能阻止其他類訪問超類中聲明的公共方法),但所有重寫的方法都將按照您的子類中的定義運行。

然后,您的子類可以選擇在適當的時候ArrayList通過使用super關鍵字來運行方法實現。


查看完整回答
反對 回復 2021-12-01
  • 2 回答
  • 0 關注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號