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