Set接口继承了Collection接口,为啥Set还要写和Collection一模一样的方法

叫不醒的梦 2015-07-25 12:11:15
看了set接口和Collection的接口的源码发现。
Set继承了Collection接口,但是set中发现有Collection定义过的方法。本来在Collection定义了方法,通过继承后set集合就应该具有Collection的特性,然而Set接口又重新定义了和Collection一模一样的方法定这不显得多余吗?

求各位大神解释解释为啥set要这样设计。
...全文
522 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ami176 2017-06-23
  • 打赏
  • 举报
回复
引用
Set接口又重新定义了和Collection一模一样的方法
Set集成了Collection,不就集成了它的方法么,为什么讲是重定义呢?
牛肉味鲜果橙 2017-06-23
  • 打赏
  • 举报
回复
java编程思想 第四版 第231页有这么一段话: Set具有与Collection完全一样的借口,因此没有任何额外的功能,不像前面有两个不同的List。实际上Set就是Collection,只是行为不同。(这是继承与多态思想的典型应用:表现不同的行为。)
护身符文 2015-11-11
  • 打赏
  • 举报
回复
extends 与implement是不同的,前者是继承,后者是实现。继承可以不重新申明方法,后者要实现它继承的方法,所以要写方法
megagao 2015-11-07
  • 打赏
  • 举报
回复
一楼说的有道理!
kghzjx 2015-11-06
  • 打赏
  • 举报
回复
今天刚看源码,也是有次疑惑
神的力量 2015-07-25
  • 打赏
  • 举报
回复
不知楼主有没有参察 即使同一个方法,上面的注释是不一样的 API就是要让人看懂 你在A集合里定义aa方法,解释XXXX跟A有关的信息 然后B集合继承A集合,同样有aa方法,但是要对aa方法重新说明一下,怎么办?是不是要重新写一遍?就是这个情况了
飏飏一蝶 2015-07-25
  • 打赏
  • 举报
回复
LZ看得很仔细 连equals方法都写出来了 应该就如一楼所说 为了上面一大串的有针对性的特殊注释吧
  • 打赏
  • 举报
回复
楼上说的有理

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧