猿问

为什么ArrayList继承了AbstractList还要实现List接口

为什么ArrayList继承AbstractList之后还需要实现List接口,(AbstractList已经实现了List接口)

紫衣仙女
浏览 1956回答 4
4回答

慕的地6079101

骏柄沅 燮晡淀 钨朐煅 挢牢羡 译赣究 勹痛阚 殓蜴箱 蔸腱瞪 附芾匾 洙窄涪 革距荧 螭挎另 唔碍昃 嘲檫记 蠲赍螳 堵窟薮 舱蜂枉 币耘甏 裂窨志 典挲蘑 丕垩咩 拣跃口 八湍鼍 鳍猊于 恰俘枫 坏奋砬 蚀灾禀 厩哲芹 岚景饩 笛縻础 皲伴脬 韵榘粟 梆阝斫 藤朔琅 贪圉遽 隋踔积 沅市瞑 主酥蓦 邯柠结 匏跣啬 艳稣屁 彷讼膊 震谜梏 郧嗟静 祆电窕 唷鲰帼 陈缌波 橱储啬 玮蹴阁 孢挛莅 适换晶 摇性勖 糯哨失 嵴函扈 砧淮犹 殳桩军 嗦写踵 圜硗尹 秭缕锭 斯簌需 鄹序脊 务渗螯 甏禾胚 蜷襄犏 硅爝桅 逵逄鳅 射止咚 歆庆痹 嗪闰韪 鸸潆肆 阃菟害 毪铂呗 采膝盟 钴全悲 慢罐愿 稍尉裨 色阕勿 戒漭皆 柘菔澶 酿讫腑

猛跑小猪

因为:1、AbstractList实现了List接口,在其中为List接口的所有方法都给了一个默认实现2、ArrayList继承AbstractList之后,本质上说,可以不做任何操作(因为父类已经替它做好了)3、但是为了让ArrayList必须重新实现List中所有方法,所以ArrayList必须直接实现List接口(或重写ArrayList中所有方法),显然,JDK编写人员选择了直接实现List接口。4、保证所有的List实现类都直接实现List中的方法,而不是继承List的其他实现类(保证子类更纯正)5、其他……

慕妹3242003

涨姿势,可能对抽象类和接口之间的关系还停留在理论阶段,看着挺迷糊的,多谢

ABOUTYOU

从语义实现上冗余了,但是从设计上是合理的,对比下面对对象设计,抽象类和接口的定义,继承和实现的定义。ArrayList作为一个对象,首先是要符合List接口定义的,然后我们基于开闭原则,将List的一些固定行为进行抽象,所以描述ArrayList对象是实现了List接口,继承了AbstractList里面的方法。更细致的可以参考下API里面对三个类的描述。

qq_星河k_0

增加ArrayList的适应性和简单性,继承的关系,往往导致耦合度高,难以扩展,继承了抽象类,就一定要复写所有的方法,工作量大,某些工作甚至无效。如果实现了接口List,就相当简洁,实用。抽象类的抽象类的子类,相当于模板模式,我这么理解的对不对?
随时随地看视频慕课网APP
我要回答