面向接口编程

176 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第28天,点击查看活动详情 >>

接口表示一种能力

  • 体现在接口的方法上

面向接口编程

  • 关心实现类有何能力,而不关心实现细节
  • 面向接口的约定而不考虑接口的具体实现

解析:

    接口在这里边其实,他仅主要表示一种能力,这种能力主要体现在接口的方法,方法就描述了
接口能够实现的功能,但是呢,他没有任何的实现,这样的话就需要在实现类里面去实现接口中的
方法,完成具体的功能,我们在实际开发的时间经常需要使用,面向接口这种编程思想进行编程,
我们通常在定义接口时只关心实现类有何能力,就是能够做什么,而不关心具体实现,只描述它能
够做什么,面向接口的约定,而不考虑接口的具体实现。

接口与抽象类的区别

  • 相同点
  • 都表示抽象特征
  • 都不能被实例化
  • 不同点
  • 接口只能定义抽象方法,抽象类可以有实现方法
  • 接口中不能有构造方法,抽象类可以有
  • 一个类可以实现多个接口,但只能继承一个抽象类

解析:

    接口,我们可以把它理解成是比抽象类更抽象的一种类型,那么他和抽象类之间呢,有很多相似
的部分,第一个相同点,都表示抽象的特征,第二个是都不能够被实例化,不同点呢,接口当中只能
定义抽象方法,抽象类中呢,可以定义抽象方法,也可以定义实例方法,第二个不同点,接口中不能
有构造方法,但抽象类里可以有,第三个,区别不同点,一个类可以实现多个接口,但只能继承一个
抽象类,这是接口和抽象类的区别我们,在面试的时间是经常问到的一个面试问题。

面向接口编程

案例:实现防盗门功能

  • 防盗门是一个门 is a的关系
  • 防盗门有一个锁 has a的关系
  • 上锁
  • 开锁

分析:

    接下来我们就采用面向接口编程思想,来,再看一个案例,实现防盗门的功能,防盗门,是一个
门,我们通过is a去判断防盗门是不是门,是,我们就可以实现继承,防盗门,有一个锁,has a关
系就是有没有拥有,那上锁和开锁的能力,我们通过这个类的关系图,可以看到门拥有开和关的能力,
开关接口呢,上锁和开锁,一个实现防盗门,防盗门即继承了门又实现了接口,如何来实现这个功能
呢,首先我们去定义一个类,这个类就是到门,我们定义成抽象类,定义抽象方法必须要加Abstract
接口当中这两个可以省略,抽象内容呢,这两个属性,这两个关键词必须要加上去才表示抽象的行为。