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