接口

是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。

接口的定义:

它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。

引用数据类型:数组,类,接口。

接口的使用:

它不能创建对象,但是可以被实现(implements ,类似于被继承)。一个实现接口的类(可以看做是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。

定义格式:

public interface 接口名称 {
// 抽象方法
// 默认方法
// 静态方法
// 私有方法
}

final: 关键字,表示终态的意思,如果修饰变量,该变量就变成常量

常量:使用public static final

接口中的常量有默认修饰符:public static final 可以省略

接口的实现

类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用 implements关键字。

非抽象子类实现接口:

  1. 必须重写接口中所有抽象方法。

  2. 继承了接口的默认方法,即可以直接调用,也可以重写。

class 类名 implements 接口名 {
// 重写接口中抽象方法【必须】
// 重写接口中默认方法【可选】
}

接口中定义抽象方法

抽象方法:没有方法体的方法,并且使用abstract关键字修饰

默认修饰符:public abstract 可以省略

public abstract 返回值类型 方法名(形参);

接口中定义默认方法--有方法体的方法

默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。

public default 返回值类型 方法名(形参){
方法体
}

接口中静态方法的定义

静态方法:使用 static 修饰,供接口直接调用。

public static 返回值类型 方法名(形参){
方法体
}

接口中定义私有方法

私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用

私有非静态方法

private 返回值类型 方法名(形参){
方法体
}

私有静态方法

Private static 返回值类型 方法名(形参){
方法体
}

接口的特点

接口就是一种引用数据类型

接口中只能定义常量和方法(抽象方法,静态方法,默认方法,私有方法)

接口不能定义成员变量和构造方法

接口不能创建对象,只能通过其实现类来使用

最新文章

  1. Lining.js - 为CSS提供 ::nth-Line 选择器功能
  2. AC自动机入门
  3. 提高php运行效率的50个技巧
  4. hdu----(3065)病毒侵袭持续中(AC自动机)
  5. 一些常用css技巧的为什么(二)我所理解的line-height
  6. poj3254Corn Fields(状压)
  7. 数据库文件导入导出操作,以及赋予权限SQL语句
  8. 如何写一手漂亮的 Vue
  9. 【转】干货 | 【虚拟货币钱包】从 BIP32、BIP39、BIP44 到 Ethereum HD Wallet
  10. [Project] SpellCorrect源码详解
  11. Nginx关于跨域的配置
  12. Golang实现二分查找法
  13. 协程与多路io复用epool关系
  14. tomcat内存设置问题
  15. 详细解释如何通过Android自带的方式来实现图片的裁剪——原理分析+解决方案
  16. 分析 ThreadLocal 内存泄漏问题
  17. [原][osg][osgearth]我眼中的osgearth
  18. POI2011题解
  19. 使用TreeDMS进行MySQL数据库的Web页面远程管理
  20. APNS/苹果推送服务

热门文章

  1. python 元组不变 列表可变
  2. Ubuntu 10.04.3 挂载NTFS移动硬盘
  3. GPU 编程入门到精通(三)之 第一个 GPU 程序
  4. oc const 关键字 对指针的理解
  5. LeetCode 409. Longest Palindrome (最长回文)
  6. Redis主节点内存占用过高
  7. java反射中getDeclaredMethods和getMethods的区别
  8. Android 自带Base64加密解密
  9. MFC基础学习
  10. nodejs Yarn替代npm的包管理——快速、安全、可靠性高的依赖管理