接口学习笔记
文章目录
1.接口的概述与生活中的举例
接口的概述与生活中的举例
生活中举例 电源擦桌当中的电源接口 ,不管是手机还是电脑还是其他电器、充电或者使用都学要使用电源接口。因为在制作电器过程中他们的接口都是统一的符合国家标准的,只要符合规范标准就可以大家通用。
再例如U盘 只要符合USB接口标准 那么各种设备都可以使用。
所以接口就是一种公共的规范标准 !
2.接口定义的基本格式
Interface 接口
接口是多个类的公共规范。
接口是一个引用数据类型 最重要的内容就是其中的:抽象方法。
如何定义一个接口:
格式 public interface 接口名称 (){
接口内容
}
3.接口的抽象方法
3.1接口抽象方法的定义
在任何Java版本中都可以定义抽象方法
注意:接口中的 修饰符必须是固定的两个关键字一个是public 一个是abstract 关键字 可以省略不写 但是 不可修改成别的关键字。
方法的三要素可以随意定义。
抽象方法格式:public abstract 返回值类型 方法名称(参数列表);
3.2接口的抽象方法使用
接口不能直接使用 如要使用 必须有一个实现类来实现接口
格式public class 实现类 implements 接口名称 {
方法体
}
接口的实现类必须覆盖重写接口中的所有抽象方法。
创建实现类的对象,进行使用。
注意事项:如果实现类没有全部覆盖重写接口中的所有抽象方法,那么实现类自己本身就必须是一个抽象类。
实现类的创建
通过实现类调用抽象方法
1.创建实现类
2调用方法 对象名.抽象方法名
运行结果
4.接口的默认方式
4.1接口的默认方法定义
定义格式 public default 返回值类型 方法名称 (参数列表){
方法体
}
备注:接口中的默认方法,可以解决接口升级的问题。
实现接口接口类必须覆盖重写接口中的所有抽象方法 如果实现类已经投入使用 需要升级更新接口 那么就需要用到默认方法。
4.2接口的默认方法使用
接口的默认方法可以被接口实现类直接调用
接口的默认方法也可以被接口实现类进行覆盖重写。
在接口中创建默认方法
创建实现类
实现创建的默认方法
执行结果
5.接口的静态方法
5.1 接口的静态方法定义
格式 public static 返回值类型 方法名称 (){
方法体
}
就是将 abstact或者default 换成 static即可,并且带上方法体。
5.2接口的静态方法使用
注意:不能通过接口实现类的对象来调用接口中的静态方法
正确调用方法:通过接口名称直接调用静态方法
接口名称.静态方法名称 (参数);
创建实现类
通过实现类实现静态方法
执行结果
7. 接口的私有方法
7.1接口的私有方法定义
情况:我么需要一个共有方法,用来解决默认方法之间冲锋衣代码的问题。但是这个公有方法不应该让实现类使用,应该是私有化的。
解决方案:
使用私有方法
情况案例
7.1.1接口的普通私有方法定义
普通私有方法,解决多个默认方法时间的重复代码问题;
格式:private 返回值类型 方法名称 (参数){
方法体
}
7.1.2接口的静态私有方法定义
静态私有方法,解决多个静态方法代码重复问题;
格式:
private static 返回值类型 方法名称 (参数){
方法体
}
7.2接口的普通私有方法使用静态私有方法执调用
普通私有方法钓调用
执行结果
静态私有方法调用
静态私有方法执行结果
8.接口的常量
8.1接口的常量的定义
接口当中也可以定义“成员变量”,但必须使用 public static final 三个关键字进行修饰。从效果上看,这就是接口的【常量】。
一旦使用了final 说明不可改变
格式:
public static final 数据类型 常量名称 = 数据值;
8.2接口的常量的使用
使用方法 接口名称.常量名称();
注意事项:接口中的常量必须赋值
9.接口内容小结
1.在Java中员变量其实就是常量,格式:
public static final 数据类型 常量名称 = 数据值;
注意:常量必须进行赋值,而且一旦赋值不能改变。
常量名称完全大写,用下划线进行分割。
2.在接口中最重要的就是抽象方法,格式:
public abstract 返回值类型 方法名称 (参数列表);
注意: 实现类必须覆盖重写接口中所有的抽象方法,除非实现类也是抽象类。
3.接口里允许定义默认方法,格式:
public default 返回值类型 方法名称(参数列表){方法体}
注意: 默认方法可以直接使用接口调用也可以被覆盖
4.接口里允许定义静态方法,格式:
public static 返回值类型 方法名称(参数列表) {方法体}
注意:应该通过接口名称进行调用,不能通过实现类对象调用接口静态方法。
5.接口里允许定义私有方法,格式:
普通私有方法:public 返回值类型 方法名称(参数列表){方法体}
静态私有方法:private static 方法名称(参数列表){方法体}
注意:private的方法只有接口自己才能调用,不能被实现类或别人使用。