JerryJade / J2SE / 接口与抽象类的异同

0 0

   

接口与抽象类的异同

2015-12-01  JerryJade
同:
  1. 接口与抽象类都不能被实例化;
  2. 接口与抽象类都包含抽象方法,它们的普通子类都必须实现这些抽象方法;

异:(主要体现在设计目的上)

接口主要体现在它规定了设计规范,一经定义不应该随便;

修改抽象类体现的是一种模版设计,它已经完善了部分功能(比如普通方法),但同时还有部分方法被延迟到子类中实现,所以抽象类可以被理解为一个中间产品;

  1. 接口里只能有抽象方法与默认方法(Java8可以有类方法),它的抽象方法不能被实现;抽象类可以有普通方法;
  2. 接口里只能定义静态常量,不能定义普通成员变量;抽象类里即可以定义静态常量,也可以定义普通成员变量;
  3. 接口没有构造函数(构造器);抽象类有构造函数,但它的构造函数主要用来让它的子类实现调用构造函数来实现对抽象类的初始化操作;
  4. 接口不可以包含初始化块;抽象类可以有初始化块;
  5. 类只能单继承,接口可以进行多实现;即一个类实现多个接口;

*接口可以定义内部类,但只能是静态内部类

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章
    喜欢该文的人也喜欢 更多

    ×
    ×