的java延伸的数组列表我想知道哪些代码这个特殊的一块确实

问题描述:

我想知道哪些代码这个特殊的一块确实的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; 
    } 

是制作,保持的和一个子类,或者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中继承。

+0

这是正确的。我还会补充一点,在这里不需要if子句,因为super.add()将始终返回ArrayLists的真。 – Kon 2014-09-03 00:57:26

+0

此外,更好的实现还会覆盖其他方法,如'addAll()',否则如果最终用户决定使用此方法添加更多整数,则sum的值将不准确 – morgano 2014-09-03 01:04:52

+0

@morgano right! – 2014-09-03 01:05:26