如何限制直接调用超级类型类';方法,并且只能使用java中的子类型实例通过子类型类methode进行访问?

如何限制直接调用超级类型类';方法,并且只能使用java中的子类型实例通过子类型类methode进行访问?,java,Java,我正在编写一个扩展ArrayList类的算法。在这里,使用algorithm类的实例,可以调用ArrayList的所有方法。我如何限制只能调用algorithm类中定义的methode,algorithm类只能通过自己的方法访问所有ArrayList的方法?? 谢谢不要扩展数组列表。而是将其实例化为私有成员字段。这样你就可以完全控制列表了。e、 g public class YourList<T> { private ArrayList<T> list;

我正在编写一个扩展ArrayList类的算法。在这里,使用algorithm类的实例,可以调用ArrayList的所有方法。我如何限制只能调用algorithm类中定义的methode,algorithm类只能通过自己的方法访问所有ArrayList的方法??
谢谢

不要扩展
数组列表
。而是将其实例化为私有成员字段。这样你就可以完全控制列表了。e、 g

public class YourList<T> {
    private ArrayList<T> list;

    public YourList() {
        list = new ArrayList<>();
    }
    // example method
    public void add(T t) {
        list.add(t);
    }

}
等等。

您不必“强制”用户调用您的子类

根据设计,Java将只运行在子类中重写的方法,给定
ArrayList
子类的实例。超类,
ArrayList
,将提供API(您不能阻止其他类访问超类中声明的公共方法),但所有重写的方法都将按照子类中的定义运行

然后,您的子类可以选择在适当的时候使用
super
关键字在
ArrayList
中运行方法实现

YourList<String> list = new YourList<>();
list.add("String");
YourList<Integer> otherList = new YourList<>();
list.add(1);