我正在编写一个扩展 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
提交
取消