接口语法

public interface Demolnteface{
public void demo():
//其他方法
//所有方法都是抽象的
}

接口里放:

  • 1.静态常量 (一般全部大写)
  • 2.抽象方法(占大多数)

接口的特性

  • 接口不可以被实例化

  • 实现类必须实现接口的所有方法,否则实现类必须是抽象类

  • 实现类可以实现多个接口,来弥补Java不能多继承

  • 接口中的变量都是静态常量

如何使用接口?

编码实现:

一个类可以实现多个接口,多个接口使用,分隔。


接口是一种规范

体现在接口名称和注释上:

有些接口只有名称

方法的实现方式要通过注释来约定

面向接口编程

  • 程序设计时面向接口的约定而不考虑具体实现

  • example:

    做这项工作需要一个程序员 程序员是一种“能力”,不关心具体是谁 接口中的方法体现软件系统的功能 面向接口编程

    程序设计时:关心实现类有何能力,而不关心实现细节 :面向接口的约定而不考虑接口的具体实现

接口的优点

  • 可以被多继承

  • 设计和实现完全分离

  • 更自然的使用多态

  • 更容易搭建程序框架

  • 更容易更好实现

接口和抽象类的区别

  • 本质区别:class和interface关键字不同。

  • 抽象类是类,接口是规范。

  • 接口可继承接口,并可多继承接口,但类只能单根继承

  • 接口只能做方法声明,抽象类中可以做方法声明,也可以做方法实现

  • 抽象类能够保证实现的层次关系,而接口则是能够更有效地分离行为与实现。




匿名类


最新文章

  1. wap页面笔记
  2. JQuery遍历方法$.each输出函数
  3. USACO 5.5 Picture(周长并)
  4. Java TCP异步数据接收
  5. super用法
  6. linux入侵检测系统snort安装配置
  7. SliverLight(how to show data point on the column series)
  8. android 转帖留链接
  9. Python3:字符串的大小写和镜像字符串(swapcase()函数,chr(),ord(),translate()函数)
  10. go语言程序设计学习笔记-1
  11. Ubuntu18.04 安装mysql8.0.11
  12. Caused by: java.net.BindException: Address already in use: bind
  13. zookeeper 启动显示started,jps查看进程却没有,解决方法
  14. 面试题-一个列表向右移动k位
  15. 深入set和dict
  16. css常用属性总结:颜色和单位
  17. Hadoop配置文件详解
  18. javascript 设置元素滚动大小
  19. 判断ArcSDE是否安装成功
  20. 百度之星资格赛--IP聚合

热门文章

  1. .NET Core学习笔记(8)——Entity Framework Core之Database First
  2. linux中的dmesg命令以及确定进程是否被系统主动kill
  3. JavaScript--总结二(流程控制+调试)
  4. Elasticsearch分页解决方案
  5. MySQL 集群知识点整理
  6. 容器编排系统K8s之crd资源
  7. python学习笔记 | macOS Big Sur动态壁纸食用指南
  8. selenium爬虫 | 爬取疫情实时动态(二)
  9. 【EXP】Oracle多表导出问题
  10. Kafka 探险 - 生产者源码分析: 核心组件