美文网首页
对接口能实现代码解耦的理解

对接口能实现代码解耦的理解

作者: 8a5e0731064f | 来源:发表于2019-11-08 10:38 被阅读0次

    接口是什么

    接口是指的是行为的标准,用于规范对象的行为。

    为什么接口可以实现代码的解耦

    Java集合的ArrayList与LinkedList都实现了List接口,都是实现了add,remove,contain等方法,在使用集合工具类Collections.sort(List<T> list)时不需要知道和指定传入的list是ArrayList还是LinkedList,也就忽略了上层代码的实现,从而实现代码的解耦。

    什么时候该用接口,什么时候该用抽象类

    • 接口是定义对象行为的标准,用于规范对象的行为,其实就是根据行为抽象出方法来定义。
    • 抽象类是用于描述对象,抽取共同属性,抽象类就像是实现类的子集。
      例如鸟和蚊子都会飞,那么鸟和蚊子这两个类都可以实现一个共同接口,该接口具有fly()方法表示他们都会飞,但他们并不是同一种类型的生物,而它们的共同属性是他们都有翅膀,所以可以定义一个抽象类抽取“翅膀”的属性。

    在Java中抽象类与接口的区别

    1. 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。
    2. 接口中除了static、final变量,不能有其他变量,而抽象类中则不一定。
    3. 一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过extends关键字扩展多个接口。
    4. 接口方法默认修饰符是public,抽象方法可以有public、protected和default这些修饰符(抽象方法就是为了被重写所以不能使用private关键字修饰!)。
    5. 从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范

    相关文章

      网友评论

          本文标题:对接口能实现代码解耦的理解

          本文链接:https://www.haomeiwen.com/subject/nkribctx.html