1,接口概念
接口是功能的集合,只描述所应该具备的方法,并没有具体实现。其他类(实现类)实现接口,重写方法以实现具体的功能。
例如:
有鸟都会飞吗?鸵鸟就不会飞,什么鸟会飞就实现飞的接口(起飞、飞行、降落三个方法构成飞功能集合)
2接口定义及使用格式
2.1接口定义
- 定义关键字
与定义类的class不同,接口定义时需要使用interface关键字。接口是一种特殊的数据类型,并在编译后仍然会产生.class文件。
特殊性表现在:
接口中只能定义公共访问的抽象方法。
接口中无法定义普通的成员变量,只能定义常量。
在这里补充一个常量的概念:
与变量不同,在业务实现过程中,有些数据是固定不变的,此时,需要使用常量记录这些固定不变的值,在使用数据时,直接使用常量。
常量的定义格式: 在成员位置定义,必须赋值。 public static 数据类型 常量名 = 显示初始化; public static String COMPANY_NAME = “阿里巴巴(中国)网络技术有限公司”; 如:
定义公司域名、公司名称、尝试理解性别使用常量表示。
- 定义格式,使用interface代替了原来的class,其他步骤与定义类类似:
public interface 接口名 {
抽象方法1;
抽象方法2;
抽象方法3;
}
如:
//可飞行能力接口
public interface Flyable {
public void takeoff(); //起飞方法
public void fly(); //飞行方法
public void landing();//降落方法
}
2.2接口使用
- 类实现接口(非常常用)
我们使用实现来表示一个类与一个接口之间的关系,这是最常用的使用方法。
实现的关键字为implements。
类在实现接口后,会将接口中的抽象方法继承过来,并重写该抽象方法,完成具体的逻辑。
格式:
public Class 类 implements 接口 {
重写接口中方法
}
-
接口继承接口(不常用,但结构性强的源码中很常见)
如同类继承类后便拥有了父类的成员,可以使用父类的非私有成员。A接口继承B接口后,A接口便拥有了A、B两个接口中所有的抽象方法。 -
定义接口变量使用多态(常用)
接口经常参与多态。在后边多态时,我们详细讲解。
3,接口注意事项
- Java支持一个类同时实现多个接口。
- Java支持一个接口同时继承多个接口。
- 类可以在继承一个类的同时,实现多个接口。
- 接口与父类的功能可以重复,均代表要具备某种功能,并不冲突。
- 接口中的成员是有固定修饰符的,如果没有写,也会自动加入:
“变量”修饰符为:public static final
方法修饰符为:public abstract(所以依据方法重写的访问权限注意事项,重写接口方法时,必须使用public)
所以接口中可以省略这些修饰符。 - 当一个类实现了接口时,必须实现其所有的方法,否则这个类会保留一些抽象方法,此时,该类包含了抽象方法,便必须定义为一个抽象类。
4,接口中成员的特点
接口不能创建对象
接口中所有的方法均有默认修饰符,所以会带来如下固定规律:
接口中只能定义常量:public static final修饰成员变量
接口中只能定义公共抽象方法:public abstract