抽象类、接口

抽象类(不是重点,和接口很像)

抽象类是用abstract修饰的类,可以有一些普通方法,继承它的非抽象类必须重写(约束)以具象它的所有抽象方法。

抽象方法是用abstract修饰的方法,不写方法体。

public abstract void doSomething();
  1. 不能new,只能靠子类继承。
  2. 抽象类里也可以写普通的方法
  3. 抽象方法必须在抽象类中

接口(重点)

普通类只有具体实现,抽象类具体实现和规范(抽象方法)都有,而接口只有规范,不能自己些方法。实现约束和实现分离,软件工程重要的一个思想。

面向接口编程:大型项目先定义好接口、写好文档,然后外包给码农写方法,我们学不好以后就去干那种活了。

接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须能…”的思想。

接口的本质是契约,就像我们人间的法律一样,制定好大家都遵守。

OO的精髓是对对象的抽象,最能体现这一点的就是接口。讨论设计模式都只是针对具备了抽象能力的语言(比如C++、java、c#等),就是因为设计模式所研究的是加上就是如何合理地去抽象。

秦疆老师的23种设计模式课讲了很多接口,设计模式就是面向对象的精髓,学完javaSE可以去看

接口里规定的方法默认是public abstract

接口都需要有实现类,命名规则是结尾加Impl,需要一一实现接口中所有方法

一个类可以实现多个接口,用逗号分隔接口名。java没有多继承但是有多实现,算是从侧面实现了“多继承”

接口中的属性默认是public static final的常量。但是一般不在接口里写属性。

锻炼抽象思维是特别难的,后面有些人能做到架构师而有的人不行,就在于能不能把系统里的结构全都抽象成接口,通过接口定义一个系统,否则就只能默默写接口的实现

接口的作用

  1. 约束实现接口的类需要实现哪些方法
  2. 架构的人定义一些方法,让不同的人去实现
  3. public abstract
  4. public static final
  5. 接口不能被实例化,不是类,没有构造器
  6. 一个类implements多个接口
  7. 实现接口的类必须要重写接口中的所有方法

面向对象的知识点差不多就是这么多,不理解可以先记着,用到的差不多都是规约的思想:有人把所有的东西接口化,一些人负责去实现。公司里干活并不复杂,当然我们离干活还有非常非常遥远的路要走。

posted @ 2021-02-01 23:26  口合口合kouhekouhe  阅读(79)  评论(0编辑  收藏  举报