我想更改 ArrayList 类的预定义方法。假设我们向 arraylist 添加任何元素。同时系统将打印“value is added in arraylist”。是否可以对 ArrayList 类的 add() 进行更改。
问问题
50 次
4 回答
2
在这种情况下,组合通常优于继承(参见http://en.wikipedia.org/wiki/Composition_over_inheritance)。
例如,如果您遵循扩展ArrayList
类的方法,您是否也希望在调用时调用您的逻辑add(int index, E element)
。怎么样addAll(Collection<? extends E> c)
。如果在 Java 的后续版本中添加了新的 add 方法怎么办?
相反,请考虑实施您自己的List
. 在内部,它会将操作委托给ArrayList
,但您不得不考虑如何处理每种类型的加法。
于 2013-04-24T05:29:58.077 回答
1
public class foo extends ArrayList<Object> {
@Override
public boolean add(Object e) {
// print your stuff here
return super.add(e);
}
}
于 2013-04-24T05:12:51.627 回答
0
你问方法overriding
??
public class MyArrayLIst extends ArrayList<ClassObj>{
@Override
public void add(ClassObj obj) {
//sysout
return super.add(obj);
}
}
于 2013-04-24T05:13:15.863 回答
0
制作您自己的重写 add 方法,该方法调用 ArrayList 的 add 方法并打印您想要的内容。必须通过继承类来完成。
于 2013-04-24T05:15:26.417 回答