博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
接口优于抽象类(18)
阅读量:6041 次
发布时间:2019-06-20

本文共 533 字,大约阅读时间需要 1 分钟。

hot3.png

1、java 提供了两种允许多个实现的类型:接口、抽象类

  • 抽象类允许某些方法的实现,接口不允许
  • 为了实现抽象类定义的类型,类必须成为抽象类的子类
  • java只允许单继承,抽象了我受到了极大的限制
  • 任何一个类,只要实现了所有定义的必要方法,就被允许实现一个接口(无论该类处于什么层次)

2、现有类可以很容易被更新,以实现新的接口

3、接口是混合(mixin)类型的理想选择

4、接口允许我们构建非层次结构的类型框架

5、接口使得安全的增强类的功能成为可能

  • 抽象类则除了继承没别的好办法

6、每个重要接口都提供一个骨架实现类

  • 接管所有与接口实现相关的类
  • 骨架类就是一个抽象类,他可以实现一个接口
  • 接口和抽象类的优点结合起来
  • 如下面静态工厂的实现,骨架实现类,为抽象类提供实现上的帮助,有没有严格限制

084844_rcpr_3847203.png

  • 可以用内部私有类模拟多重继承

7、抽象类演变比接口演变容易得多

8、设计公有接口需要非常谨慎,一旦公开被广泛接受,再想修改是不可能的

9、总结:

  • 接口通常是定义允许多个实现的类型的最佳途径
  • 当演变容易性比灵活性更重要时,选择抽象类,接受她的局限
  • 重要接口坚决使用骨架实现类

转载于:https://my.oschina.net/u/3847203/blog/1824964

你可能感兴趣的文章
sphinx的安装
查看>>
scsi_cnmd.h
查看>>
ESXi5中win2003使用LSI logic SAS磁盘
查看>>
一个java对象占多少内存空间
查看>>
发快递激光焊接客服电话关机后发的
查看>>
MySQL 几种连接方式配置
查看>>
线上追踪类方法执行耗时
查看>>
恩布企业IM,协同办公平台发布V1.24版本
查看>>
媒体查询引入的三种方式
查看>>
Serv-U Passive被动模式端口设置
查看>>
字符编码的知识
查看>>
js的history.pushstate()作用
查看>>
Hadoop 源代码分析(一七)DataNode
查看>>
Linux学习之CentOS(四)--Linux系统的启动级别
查看>>
linux发展史
查看>>
我是新人,请大家多多关照
查看>>
Dell服务器MegaCli命令只返回Exit Code: 0x00问题分析
查看>>
Android环境下使用SocketClient
查看>>
CRM项目失败的原因分析之一意识问题
查看>>
Mac下MySql卸载方法
查看>>