我正在尝试扩展 ArrayList 以仅使添加功能可用。然后我创建了一个 AlExtend 对象,但我仍然可以访问除 add() 之外的所有其他方法。如何创建允许 AlExtend 对象仅使用 add() 函数的代码?
import java.util.ArrayList;
public class AlExtend<E> extends ArrayList<E> {
public AlExtend() {
super();
}
@Override
public boolean add(E e) {
return super.add(e);
}
}
public class main {
public static void main(String[] args) {
ALExtend<String> list = new ALExtend<String>();
list.add("fg");
list.clear();
}
}
最佳答案
继承不会为您提供所需的行为。请改用合成。使 ArrayList
实例成为您类的私有(private)成员,并且只允许访问其 add
方法。
import java.util.ArrayList;
public class AlExtend<E>
{
private ArrayList<E> list = new ArrayList<E> ();
public AlExtend() {
super();
}
public boolean add(E e) {
return list.add(e);
}
}
关于Java - 扩展 ArrayList,使方法私有(private)化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32474290/