zoukankan      html  css  js  c++  java
  • 类与接口的区别和详解

    接口和抽象类的区别和联系
    共同点
    1)抽象类和接口都不能被直接实例化;
     
    差异点
    1)一个类只能继承一个抽象类,但是一个类可以同时实现多个接口;
    2)接口里面只能对方法进行声明,抽象类既可以对方法进行声明也可以对方法进行实现;
    3)抽象类里面的抽象方法必须全部被子类实现,如果子类不能全部实现,那么子类必须也是抽象类。接口里面的方法也必须全部被子类实现,如果子类不能实现那么子类必须是抽象类;
    4)抽象类描述了“A is a B” 的关系;接口描述了“A is like a B” 的关系;
    5)设计理念:
    接口的设计目的是为了实现多态,是对类的行为进行约束,可以强制要求不同的类具有相同的行为。它只约束了行为的有无,但不对如何实现行为进行限制。
    抽象类的设计目的是代码复用,可以把所有子类拥有的共同特性放到一个抽象类中,子类继承此抽象类 。当不同的类具有某些相同的行为(记为行为集合A),且其中一部分行为的实现方式一致时(A的非真子集,记为B),可以让这些类都派生于一个抽象类。在这个抽象类中实现了B,避免让所有的子类来实现B,这就达到了代码复用的目的。而A减B的部分,留给各个子类自己实现。正是因为A-B在这里没有实现,所以抽象类不允许实例化出来(否则当调用到A-B时,无法执行)。

    你想拥有什么,你就去追求什么!
  • 相关阅读:
    在 Queue 中 poll()和 remove()有什么区别?
    jdk 8 HashMap源码解读
    java 中,没有任何方法和成员变量的接口
    ArrayList、LinkedList、Vector、Array
    StringBuilder和StringBuffer
    Collection
    jdk代理和cglib代理源代码之我见
    多 线程
    Spring的@Enable*注解的工作原理
    redis 学习
  • 原文地址:https://www.cnblogs.com/lchzlp/p/13901950.html
Copyright © 2011-2022 走看看