zoukankan      html  css  js  c++  java
  • 抽象类与接口的关系

    含有abstract修饰符的class即为抽象类,抽象类不能创建实例对象。含有abstract方法的类必须定义为abstract class,abstract class中的方法不必是抽象的。abstract class中定义抽象方法必须在具体(Concrete)子类中实现。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

    接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的variable默认为public static final。选择如果抽象类和接口都可以使用,则优先使用接口,避免单继承的局限。

    下表归纳了二者的主要差别:

    序号 区别点 抽象类 接  口
    1 基本定义 包含抽象方法的类  抽象方法和全局常量的集合
    2 组成 构造方法,抽象方法,普通方法,常量,变量 常量,抽象方法
    3 使用 子类继承抽象类(extends) 子类实现接口(implements)
    4 关系 抽象类可以实现多个接口 接口不能继承抽象类,但允许继承多个接口
    5 常见设计模式 模板设计 工厂设计,代理设计
    6 对象 都通过对象的多态性产生实例化对象
    7 局限 抽象类有单继承的局限 接口没有此局限
    8 实际 作为一个模板 作为一个标准或表示一种能力
    9 内部定义 在抽象类中可以定义多个内部抽象类 在接口中可以定义多个内部接口
    11 特殊 一个抽象类中可以包含多个接口,一个接口中可以包含多个抽象类
  • 相关阅读:
    jQuery中ajax的4种常用请求方式
    前端常见浏览器兼容性问题解决方案
    平衡二叉树---将有序数组转换为二叉搜索树
    equals
    Java中的System.out.println
    System.arraycopy --全面解释(就是那么有爱心)
    计算机网络实验-ACL-OSPF-RIP
    pip install lxml
    Spark-shell --常用命令 (command)
    《Thinking in Java》---Summary of Chapter 2
  • 原文地址:https://www.cnblogs.com/ioveNature/p/6796834.html
Copyright © 2011-2022 走看看