Java进阶——接口优于抽象类

本篇系Java进阶系列 篇4.18,介绍接口相较于抽象类的优点

跑题1——一直牢记的一点“100%的坚持比百分之九十几的坚持更容易”又一次体会到,上周跟随部门团建出去旅游,一旦停更就是将近一周,希望能把原则秉持下来

跑题2——今天看了new iPhone的发布会,依旧很精致,不知何时Android能有赶上iPhone水准的机器面世

两者区别

抽象类可以包含部分实现,接口不可以(Java8接口中可以定义默认方法,但不推荐如此使用接口)

为了实现抽象类定义的类型,必须extends 抽象类,限制了其可扩展性

接口的优势

  • 已有类可以很容易被更新,以实现新接口
  • 接口是定义mixin(像中文“迷信”,实则取自此词,代表混合类型)的理想选择
  • 允许我们构造非层次结构的类型框架(就像我们每个人身怀多技一样,每个类也可能有多种特性)
  • 使得增强类的功能更加安全

pay attention

  • 公共接口一旦被公开,修改起来就极其麻烦,所谓牵一发而动全身,所以设计接口时要谨慎;

    实际项目中发现这个点其实是一个经验问题,又要最小化接口,又要把接口设计得符合SOLID设计模式五大原则,就要求我们在实际工作中训练好这个技能,把握好接口设计的度

  • 抽象类也并非一无是处,它的改变就比接口要简易的多,实际使用时也是体验很好的一种设计方法,不过抽象类的使用也要有所衡量,只有在确实是属于一个类别的类时才好去使用抽象类,否则就违背了我们的编程原则

Powered by KyleCe

Copyright © 2015 - 2019 KyleCe All Rights Reserved.

访客数 : | 访问量 :