定义:接口就是多个类的共有规范(里面的抽象方法),是一种引用数据类型。
小提示:基本数据类型包括数值型(整数和浮点数)、字符型、布尔型。
格式:
public interface 接口名称{
//接口内容
}
备注:接口.java编译后仍然是接口.class;
接口包含的内容:
java 7(1.常量 2.抽象方法)
java 8(3.默认方法 4.静态方法)
java 9(私有方法)
1.常量
常量类似接口的“成员变量”,必须加上public static final
三个关键字修饰。
格式:public static final 数据类型 常量名称 = 数据值;
注意:
1.三个关键字可以省略;
2.接口常量必须被复制;
3.接口中常量名称,使用完全大写字母,并用下划线隔开(MY_AGE
)。
2.抽象方法
抽象方法的修饰符同样是固定的两个关键字`public abstract`(可以省略任一关键字);
抽象方法接口不能直接使用,必须有一个实现类去实现该接口,实现类必须覆盖重写(实现)接口内所有的抽象方法,否则这个实现类就成了抽象类(abstract
)。
格式:
public class 实现类名称 iplements 接口名称{
//方法体
}
public abstract 返回值类型 方法名称(参数列表);
3.默认方法
接口的默认方法是用来解决接口升级的问题。
格式:
public default 返回值类型 方法名称(参数列表){
//方法体
}
使用:①被接口实现类对象直接调用;
②可以被接口实现类进行覆盖重写。
4.静态方法
public static 返回值类型 方法名称(参数列表){
//方法体
}
静态方法使用直接是:接口名称.静态方法名(参数列表);
5.私有方法
在接口中如果有多个默认方法(default
)存在重复代码,可以定义一个共有方法解决,但是这个共有方法是属于这多个默认方法使用的,是私有化的不能让实现类使用。
①普通私有方法(默认方法default
)
private 返回值类型 方法名称(参数列表){
//方法体
}
②静态私有方法(静态方法static
)
private static 返回值类型 方法名称(参数列表){
//方法体
}
继承父类并实现多个接口:
1.接口不能有静态代码块;不能有构造方法;
2.一个类只能继承一个父类但是可以实现多个接口;
格式:
public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{
//覆盖重写接口所有的抽象方法
//也可以重写接口内的默认方法
}
3.接口内存在两个或多个重名抽象方法时,实现一次就可以;
4.接口内存在两个或多个重名默认方法时,需要对这个默认方法进行重写;
5.一个类直接继承父类的方法和实现接口的方法重名时,继承关系优先于接口实现。
接口之间的多继承:
1.类与类时但继承;
2.类与接口是多实现;
3.接口与接口之间是多继承的。