Collection接口和List接口问题

chengkehan 2009-07-23 11:40:17
List接口是继承了Collection接口,那为什么List接口中有和Collection接口一样的纯抽象方法呢

比如说Collection中有 int size();

List接口中要再写一遍 int size();
...全文
90 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengkehan 2009-07-24
  • 打赏
  • 举报
回复
我还要在理解一会儿
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yidinghe 的回复:]
引用 13 楼 chengkehan 的回复:
我想说的是既然Collection里有了,为什么List接口中还要再写一遍相同的方法呢
就是改了一下 JavaDoc,把父接口里面的“collection”换成“list”了。
[/Quote]
=。= 汗看了这么半天才明白楼主的意思 是楼主语文不好 还是哥们你语文不好````
开个玩笑``
chengkehan 2009-07-24
  • 打赏
  • 举报
回复
看到了,谢谢啊
chengkehan 2009-07-24
  • 打赏
  • 举报
回复
对对对,就是这样
lhbwrh 2009-07-24
  • 打赏
  • 举报
回复
是我理解错误, 像LZ致歉.. 同时我也查了api ..
Edwin603 解释正确.. 向其学习.
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
为方便起见,这里也包括了其他继承方法的声明。
楼主 你还没看到我的回复吗?????????
API里写了 为什么他要在这里还写的原因!!!!你看不到我回复吗???上面红字我标示了!!!
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yidinghe 的回复:]
正因为 List 继承于 Collection,所以 List 里面的 size() 方法就是 Collection 的 size() 方法呀!
[/Quote]
这为哥们 楼主的意思就是 为什么List里还要重新写 上int size() 因为按习惯来说 这个应该没必要再写了
你明白了吗?
interface  A {         //Collection
abstract int size();
}
interface B extends A { //List

}
class C implements B {
public int size() {
System.out.println("C");
return 1;
}
}
public class Demo {
public static void main (String [] args) {
B c = new C();
c.size();
}
}

楼主认为 代码应该向上面那样写
捏造的信仰 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 chengkehan 的回复:]
我想说的是既然Collection里有了,为什么List接口中还要再写一遍相同的方法呢
[/Quote]就是改了一下 JavaDoc,把父接口里面的“collection”换成“list”了。
chengkehan 2009-07-24
  • 打赏
  • 举报
回复
我想说的是既然Collection里有了,为什么List接口中还要再写一遍相同的方法呢
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 chengkehan 的回复:]
看一下Collection和List的源码就知道了,都有一个相同的int size()
[/Quote]
看到了吧 这就是楼主的意思 请楼主看我在8楼的回复回帖 API 里句话 你可能没注意到 我刚查看过
List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。

chengkehan 2009-07-24
  • 打赏
  • 举报
回复
看一下Collection和List的源码就知道了,都有一个相同的int size()
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yidinghe 的回复:]
引用 4 楼 edwin603 的回复:
引用 3 楼 yidinghe 的回复:
正因为 List 继承于 Collection,所以 List 里面的 size() 方法就是 Collection 的 size() 方法呀!

楼主的意思是 既然List继承了Collection 那List里 没必要在出现size()方法了

你没搞清楚。List 继承于 Collection,所以 List 本身不需要定义 size() 方法,我们看到的 List.size() 其实就是 Collection.size()。
[/Quote]
大哥 我当然知道了 意思是 你没发现API里向来冲写的方法 才放到方法摘要里 继承后没改动的方法都另写在一个地方吗? 这就是我的意思
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lhbwrh 的回复:]
本来就是继承下来的东西.. 难道要扔了? 怎么扔?
[/Quote]
楼主的意思是既然继承了 就没必要写出来OK? 明白?
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
查看了下中文API 下面这话 看来说明了 楼主的问题:
List 接口在 iterator、add、remove、equals 和 hashCode 方法的协定上加了一些其他约定,超过了 Collection 接口中指定的约定。为方便起见,这里也包括了其他继承方法的声明。

lhbwrh 2009-07-24
  • 打赏
  • 举报
回复
本来就是继承下来的东西.. 难道要扔了? 怎么扔?
捏造的信仰 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 edwin603 的回复:]
引用 3 楼 yidinghe 的回复:
正因为 List 继承于 Collection,所以 List 里面的 size() 方法就是 Collection 的 size() 方法呀!

楼主的意思是 既然List继承了Collection 那List里 没必要在出现size()方法了
[/Quote]
你没搞清楚。List 继承于 Collection,所以 List 本身不需要定义 size() 方法,我们看到的 List.size() 其实就是 Collection.size()。
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
楼主 我1楼的回复不对 我也在思考 等带别人回答
Edwin603 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yidinghe 的回复:]
正因为 List 继承于 Collection,所以 List 里面的 size() 方法就是 Collection 的 size() 方法呀!
[/Quote]
楼主的意思是 既然List继承了Collection 那List里 没必要在出现size()方法了
捏造的信仰 2009-07-24
  • 打赏
  • 举报
回复
正因为 List 继承于 Collection,所以 List 里面的 size() 方法就是 Collection 的 size() 方法呀!
chengkehan 2009-07-23
  • 打赏
  • 举报
回复
和多继承没关系吧,一个接口是可以继承任意多个其他接口的
加载更多回复(1)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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