一.接口简介
接口(interface),是java中一种引用数据类型,可以看做方法的集合,其内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法(JDK 9).
二.使用举例.
1.定义格式:
public interface 接口名称{
//抽象方法
//默认方法
//静态方法
//私有方法
}
2. 实现接口的类定义:
public class 类名 implements 接口名{
//实现接口中抽象方法(必须)
//重写接口中默认方法(可选)
}
3.注意:
- 接口不能创建对象,但可以被实现,接口的子类必须实现接口中所有的抽象方法.默认方法是可选的.
- 接口中无法定义变量,可以定义常量,默认使用public static final修饰(永远不可变
- 接口中没有构造方法,没有代码块
三.各类方法详解.
- 抽象方法:
使用abstract修饰,供子类实现使用
public abstract void method();
注意:所有方法在接口中(定义上)都是抽象方法,所以abstract关键字也可以不写,而接口代表对外行为的集合,在方法的声明中,所有都默认是 public,所以public也可以不写 可以直接写成(void methods);
-
默认方法
使用default修饰,不可省略,供子类调用或重写(只能通过最终实现类调用, 不能通过抽象类调用)
public default void method(){
//执行语句
} -
静态方法
用static 修饰,供接口直接调用.只能通过接口名称调用.子类不能继承或重写
public static void method(){
//执行语句
} -
私有方法
使用private修饰,供接口中的默认方法或静态方法调用
private void method(){
//执行语句
}
默认方法的使用举例:
例:(只能通过最终实现类(没有abstract修饰)调用,不能通过抽象类调用 )
public interface Test{
public default void print(){
System.out.print("我是默认方法");
}
}
public class TestImpl implements Test{
//1.什么也不写,通过对象即可调用
//2.或者进行重写
}
静态方法的使用:
例:(只能通过接口名称调用)
public interface Test{
public static void print(){
System.out.ptinr("我是静态方法");
}
}
public class TestImpl implements Test{
//无法重写也无法继承静态方法
}