List,AbstractList,ArrayList是什么关系?

在阅读ArrayList的源码过程中,List接口,AbstractList抽象类和ArrayList集合类之间到底什么关系,这是一种什么设计模式?

在源码中这样的设计并不罕见,首先在接口中定义这个家族中所有成员的共性方法,且不管其成员具体的实现方式,集中地规范了该有的共性方法

例如List接口中的抽象方法
在这里插入图片描述
那每个实现类都要全部实现这些方法么?那可太麻烦了,例如size()方法,对于每个List实现类来说都是返回size属性,如果每个都要重写,势必会使代码更加臃肿

AbstractList中

所以像这类实现方法是通用的,就可以在一个抽象类中统一实现,然后将add()等自由化程度较高地方法交给每个实现类自己去实现,所以并没有实现接口的所有方法,那么就需要加abstract关键字修饰

ArrayList中

所以到了具体的实现类继承Abstract类后就不需要重写那些实现方式相同的代码,只需要关注自身具体的实现方法就可以,使方法更加专业化对准每一个个性化集合

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值