提倡使用 interface 而尽是避免使用 abstract class

在 Ihinking in Java 3rd 中,作者的观点也基本上是这样的,摘抄一下大家参考吧:

interface 不简单地只是 abstract class 的更加纯粹的方式,它有更加高级的目的。因为 interface 根本就没有实现,所以,它不需要存储,没有必要去避免许多的 interface 组合在一起。这一点很有用,比如有时候,你想说”An x is an a and a b and a c.“
记住,使用 interface 是最主要的原因是,它可以上溯到多于一个的基类。然后,第二个用 interface 原因与用 abstract class 的相同的,即避免客户程序员创建这个类的实例,因为它只是个接口。这带来一个问题:你什么时候用 interface 或者用 abstract class 呢? interface 给你的好处是 abstract class 的好处加上 interface 特有的好处,因此,只要有可能不用定义成员变量与方法,你应该偏向于 interface 而不是 abstract class。实际上,如果你要创建一个基础类,你的第一选择应该是设计成 interface ,只有当你不得不需要有方法定义或者成员变量时,才转向使用 abstract class,或者直接做成一个实现类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值