Jav*_*mer 3 java extends private arraylist extend
我试图扩展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();
}
}
Run Code Online (Sandbox Code Playgroud)
继承不会给你想要的行为.改用构图.使ArrayList实例成为类的私有成员,并且只允许访问其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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |