抽象方法的声明没有方法体。
abstract void func();
包含抽象方法的类叫做抽象类。
public abstract class Basic{
abstract void func();
protected abstract void func1();
public abstract void func2();
}
抽象方法默认是public的,不可以设置为private
在java8之前的接口只允许有抽象方法,是一个完全抽象的类,没有提供任何实现
接口中的属性被隐式指明为public static final
public interface Inter{
int m();
}
java8之后允许接口包含默认方法和静态方法
默认方法允许在不破坏已使用接口的代码的情况下,在接口中新增方法,必须用default修饰符来修饰方法
public interface Inter{
int m();
default void newMethod(){
System.out.println("新增方法");
}
}
如果两个接口中都提供了相同名称且参数相同的默认方法,在同时实现这两个接口的时候需要让程序员来解决这个二义性,即需要覆盖该方法来解决默认方法的冲突
静态方法可以将工具功能放在接口,从而操作接口
public interface Operations{
void execute();
static void runOps(Operations... ops){
for(Operations op : ops){
op.execute();
}
}
static void test(){
System.out.println("接口静态方法");
}
static void main(String[] args) {
test();
}
}
本文由 mdnice 多平台发布