java扩展arraylist我想知道这段特殊代码的作用

时间:2014-09-03 00:55:57

标签: java

我想知道这段特殊代码的作用

public class Sum extends ArrayList<Integer> {

    int sum;

    public int sum() { return sum;}

    public boolean add(Integer i) { 
        if (super.add(i)) { 
            sum += i;
            return true;
        }
        return false;
    }

1 个答案:

答案 0 :(得分:3)

它正在创建一个子类或ArrayList,它保存所有成员的总和,这些成员必须是整数。

因此,如果使用:

Sum s = new Sum();
s.add(55);
s.add(11);

System.out.println(s.sum());  // Will output 66, that is 55 + 11
System.out.println(s.get(0));  // Will output 55, the first element, ad every list

此外,最好将其定义为

public class Sum extends ArrayList<Integer> 

否则add方法不会覆盖从ArrayList继承的add(Object)。