0

我想更改 ArrayList 类的预定义方法。假设我们向 arraylist 添加任何元素。同时系统将打印“value is added in arraylist”。是否可以对 ArrayList 类的 add() 进行更改。

4

4 回答 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 回答