抽象类和接口的最佳实践

先谈谈我脑子里所了解的知识,然后补充下刚才学到的。
参考之前的一篇http://blog.csdn.net/whuslei/article/details/6366185
接口(interface)
1、接口中的所有方法都是 public abstract的,所有的变量(如果有)都是public static final型的,且必须给初值
2、一个类可以实现多个接口,所谓"实现一个接口",就必须实现接口里的所有方法
3、一个接口可以继承多个接口,即"接口可以实现多继承"

抽象类(abstract)
1、不都是抽象方法!可以包含非抽象方法,即可以包含某些方法的具体实现。
2、可以有数据成员,没有限定!默认是friendly型
3、继承它的子类,如果实现了它的抽象方法,则该类不是抽象类!反之,该类依然是抽象类
4、class前面必须用abstarct修饰

很明显,接口和抽象类各有各的优势和劣势,所以就引申出一个问题,怎么用他们才比较合理?

java api中采用了一种设计模式,暂且叫做"缺省适配模式":申明类型的工作仍然由Java接口承担,同时给出一个抽象类,实现了这个接口。而同属于这个抽象类型的具体类可以实现这个接口,也可以继承这个抽象类。也就是在这个层次结构中,接口处于顶层,紧接着就是抽象类。

参考http://blog.csdn.net/sunboard/article/details/3831823

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值