1. 定义(以下是百度百科中的定义):

      Java接口:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

        个人补充:Java接口中也可以有属性,只不过必须为 静态常量(由public static final修饰),因此 有数据共享的作用。

      Java抽象类:Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。

        个人补充:Java抽象类也可以不含抽象方法,这样的话纯粹是为了不允许实例化。不过个人感觉真正这样设计没什么卵意义。


相同点:

  1. 都位于继承的顶端,被用于实现或继承。
  2. 都不能实例化。
  3. 都拥有需要被实现的抽象方法(抽象类可以没有抽象方法,不过很少有真正这样设计的)。

不同点:

  • 从继承的角度:抽象类只允许单继承,而接口允许多继承。
  • 从实现的角度:抽象类中允许有具体实现的方法,而接口则所有方法必为抽象方法(JDK8中接口新增了一个特性:接口中可以有静态实现方法)。接口中的属性必须为静态常量(由public static final修饰),而抽象类中没这个限制。接口还不能有构造方法,抽象类也没这个限制。

最新文章

  1. eclipse启动tomcat无法访问
  2. 修改sql数据库文件 物理文件名称
  3. windows必备,命令行工具cmder
  4. LightOj1366 - Pair of Touching Circles(求矩形内圆的对数)
  5. AWE、加载计数器错误
  6. 【M2】最好使用C++转型操作符
  7. 视网膜New iPad与普通分辨率iPad页面的兼容处理
  8. Timeout Detection & Recovery (TDR)
  9. debian配置简单的vsftp服务器
  10. .Net程序猿乐Android开发---(4)注册页面布局
  11. iptables防火墙详解
  12. Fiddler抓取https原理?
  13. 47. leetcode 437. Path Sum III
  14. sql的left join 、right join 、inner join之间的区别
  15. java课程之团队开发冲刺阶段1.3
  16. typescript 关于class属性类型定义被属性默认值覆盖的问题及解决方式
  17. Python课程第一天作业
  18. Yii1.1框架关于日志的配置的简单使用
  19. 经典文摘:饿了么的 PWA 升级实践(结合Vue.js)
  20. Ubuntu安装软件时提示依赖项配置错误

热门文章

  1. MySQL数据类型 约束
  2. 吉首大学2019年程序设计竞赛(重现赛)-K(线段树)
  3. Oacle常用语句
  4. CSP 最大的矩形(201312-3)
  5. 接口测试-免费开放的api
  6. 开发MT4连接失败最easy忽视的一个错误
  7. @RequestMapping-限定参数映射
  8. O012、Linux如何实现VLAN
  9. jq sku实现
  10. Logback日志输出到ELK