接口interface
1、理解
接口就是一种规范标准。就相当于一个USB接口,厂家不管谁用,用户也不管谁生产,只要符合这个规范,那么USB接口能够通用。我们不管接口里面写的什么程序,我们只要拿过来用就行。
2、接口格式
格式:
public interface 接口名称{
方法体
}
注意:接口不能直接创建对象,必须通过实现类创建对象,才能使用里面的方法。
3、接口的抽象方法
接口的抽象方法。
- 格式:
public abstract 返回值类型 方法名(参数列表); - 注意:
实现类必须全部重写抽象方法,除非实现类是抽象类
*/
public interface Demo02_interfaceAbs {
public abstract void method01();
//可以省略为
void method02();
}
注意:实现类必须要全部重写接口里面的抽象方法,除非实现类也是抽象类。
4、接口的默认方法
-
默认方法:在JAVA8以后,可以在程序里面添加默认方法,主要是解决接口升级问题。
-
接口升级:在前面我们说过实现类要全部重写接口的抽象方法,但是接口一旦再写多 一个抽象方法,那么实现类没有及时添加就会报错,此时我们只要把新添加
的方法改成默认方法即可解决该问题 -
格式:
-
public default 返回值类型 方法名称(参数列表){
方法体
} -
使用方法:
实现类名.方法名
*/
public interface Demo03_interfaceDef {
public default void method01(){}
}
5、接口的静态方法
- 格式:
- public static 返回值类型 方法名(参数列表){
- 方法体
- }
使用方法:
接口名.方法名
- */
public interface Demo04_interfaceStatic {
public static void StaticMethod01(){
}
}
6、接口的私有化方法及使用
接口私有化:主要是创建一个方法解决接口内代码重复率过高,但是这个方法又不会被实现类调用
- 格式:
- private 返回值类型 方法名(参数列表){
方法体 - }
- 使用方式:
直接在接口里面调用 - */
public interface Demo05_interfacePrivate {
public default void m1(){
m3();
}
public default void m2(){
m3();
}
//这个m3方法不会被实现类调用
private void m3(){
System.out.println(“AAA”);
}
}
7、接口常量定义及使用
接口常量定义和使用
- 格式:
- public static final int 数据名称 = 数据值;
- 注意:
- 常量一旦赋值,将不会发生变化
- 最好是全大写,分隔符用下划线
- */
public interface Demo06_interfaceConst {
public static final int MUN1 = 10;
//可以省略写成:
int MUN2 = 10;
}
8、总结
- JAVA 8以后可以定义默认方法,格式为:public default 返回值类型 方法名称(参数列表) { 方法体 }
- 接口中的抽象方法格式:public abstract 返回值类型 方法名称(参数列表);
注意:实现类必须全部重写抽象方法,除非实现类就是抽象类
3.JAVA 8开始,可以在程序里面加静态方法,格式为:public static 返回值类型 方法名称(参数列表){ 方法体 };
注意:静态方法使用接口名点的方式调用
4.JAVA 9开始,可以在接口里面加私有方法,格式为:private 返回值类型 方法名称(参数列表){ 方法体 }
注意:私有方法只能接口自己调用,实现类调用不了。
5.JAVA 9开始接口里面可以添加常量,格式为:public static final 数据类型 常量名称 = 数据值;
注意:常量一旦赋值将不会再被改变,书写建议全大写额,分隔符使用下划线。