看了set接口和Collection的接口的源码发现。
Set继承了Collection接口,但是set中发现有Collection定义过的方法。本来在Collection定义了方法,通过继承后set集合就应该具有Collection的特性,然而Set接口又重新定义了和Collection一模一样的方法定这不显得多余吗?求各位大神解释解释为啥set要这样设计。

解决方案 »

  1.   

    不知楼主有没有参察
    即使同一个方法,上面的注释是不一样的
    API就是要让人看懂
    你在A集合里定义aa方法,解释XXXX跟A有关的信息
    然后B集合继承A集合,同样有aa方法,但是要对aa方法重新说明一下,怎么办?是不是要重新写一遍?就是这个情况了
      

  2.   

    LZ看得很仔细
    连equals方法都写出来了
    应该就如一楼所说
    为了上面一大串的有针对性的特殊注释吧
      

  3.   

    extends 与implement是不同的,前者是继承,后者是实现。继承可以不重新申明方法,后者要实现它继承的方法,所以要写方法
      

  4.   

    java编程思想 第四版 第231页有这么一段话:Set具有与Collection完全一样的借口,因此没有任何额外的功能,不像前面有两个不同的List。实际上Set就是Collection,只是行为不同。(这是继承与多态思想的典型应用:表现不同的行为。)
      

  5.   

    Set集成了Collection,不就集成了它的方法么,为什么讲是重定义呢?