1.引言
在现实生活中,处处需要制定规范:
例如:电脑插头设计时,必须有规范,否则无法正常和插排连接
例如:手机设计时,需要有规范
否则手机没法正常打电话、发短信
Java 世界中也有规范,为了学习 Java 中如何制定规范,我们就需要学习接口知识
2.概念&入门
2.1概念
官方定义:接口是一系列方法的声明,是一些方法特征的集合
接口:用来定义规范。
以制造手机为例:
在 Java 中,接口 = 规范
2.2入门:定义接口
需求说明:
公司提出手机(Phone)的设计规范:手机可以打电话(call),可以发信息(sendMessage)
请将手机的设计规范定义为 Java 中的接口
知识讲解:
1、 接口定义时需要使用 interface 关键字
2、 接口定义格式为:
public interface 接口名 { 返回值类型 方法名 1(参数列表); }
注:接口中非静态成员方法都无需方法体
代码实现:
接口定义完毕,就制定了一个 Phone 接口,为其他手机类的定义,制定了规范
3.进阶:实现接口
因为接口无法直接创建对象,
所以我们必须根据接口来定义普通 Java 类,使用普通 Java 类创建对象。
根据接口定义普通 Java 类,重写接口中方法的过程,我们称为:实现接口
实现接口的普通 Java 类,我们也叫做实现类
格式:
public class 类名 implements 接口名 { 重写接口中的方法 }
//
需求:
请在公司提出的手机(Phone)的设计规范的基础上,定义苹果手机类(IPhone),
将接口中提出的两个功能,真正实现出效果:
打电话(call):控制台展示“打电话”
发信息(sendMessage):控制台展示“发短信”
最终在测试类中,创建一个苹果手机类对象,分别调用两个方法
分析:
1、定义实现类
2、通过实现类,创建对象
实现:
Iphone 类:(实现接口)
public class IPhone implements Phone { @Override public void call() { System.out.println("打电话"); } @Override public void sendMessages() { System.out.println("发短信"); } }
Demo1 类:
public static void main(String[] args) { IPhone ip = new IPhone(); ip.call(); ip.sendMessages(); }
总结:实现接口就是:Iphone 类将接口所有方法逐一重写,从而真正实现了每个方法的功能。
4.IDEA快捷实现接口
IDEA 可以帮我们快捷定义某个接口的实现类:
5.接口强化练习
5.1练习1:管理班级接口
定义管理班级接口(Management):
接口中定义两个方法:作业检查(check)、考试(exam)
定义班主任(ClassTeacher)类,让班主任具备管理班级的功能。
定义讲师(Lecturer)类,让讲师具备管理班级的功能。
注意:实现了哪个接口,我们就认为:类就具备了哪些功能。
例如:
1、 实现了手机接口,类就具备了手机功能
2、 实现了飞行接口,类就具备了飞行功能
3、 实现了计算接口,类就具备了计算功能。
5.2练习2:孩子继承父亲 孩子是学生 父亲不是学生
现有如下类或接口:父亲(Father),孩子(Child),学生(Student)
他们之间的关系为:
孩子继承了父亲,都能跑步锻炼
孩子是学生,有学习功能
父亲不是学生,没有学习功能
学习(study),跑步(run)
6.接口的注意事项
- 接口中不可以定义构造方法,更无法直接创建对象
- 接口中不可以定义普通成员变量,只能定义常量。接口中的常量默认被 public static final 修饰
- Java 支持一个类实现多个接口
- 接口之间也可以使用继承,而且一个接口可以有多个父接口
- 接口中可以定义 static 方法,static 方法必须编写方法体
- 一个类既可以继承父类,同时也可以实现接口,继承和实现之间没有相互的干扰