我正在編寫一個擴展 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);

慕神8447489
TA貢獻1780條經驗 獲得超1個贊
您不必“強迫”您的用戶調用您的子類。
按照設計,Java 將僅運行在子類中重寫的方法,給定ArrayList
. 超類ArrayList
將提供 API(您不能阻止其他類訪問超類中聲明的公共方法),但所有重寫的方法都將按照您的子類中的定義運行。
然后,您的子類可以選擇在適當的時候ArrayList
通過使用super
關鍵字來運行方法實現。
添加回答
舉報
0/150
提交
取消