最近项目代码中用到了default和static这两个关键字,这里用到的地方是接口中。
default常用于接口中,正常情况下我们写接口的时候,方法是不能有方法体的,但是用了default关键字修饰方法之后,这个方法是可以有方法体的,看下面的代码:
1.创建一个BaseStu接口
public interface BaseStu {
default void testDefault() {
System.out.println("default关键字:test");
}
}
从上面的代码就可以看出,方法经过default关键字修饰后,是可以有方法体的。
2.创建一个类实现BaseStu接口
public class BaseStuImpl implements BaseStu{
}
3.在main函数中调用default修饰的方法
public static void main(String[] args) {
BaseStu baseStu = new BaseStuImpl();
baseStu.testDefault();
}
输出结果如下:
可以看出,接口的实现类可以直接调用接口中用default修饰的方法,并且不需要实现该方法(也可以实现)
static关键字常用于修饰类的属性和方法,同样,static也可以修饰接口的方法
1.创建一个BaseStu接口
public interface BaseStu {
static void testStatic() {
System.out.println("static关键字:test");
}
}
2.在main函数调用static修饰的接口方法
public static void main(String[] args) {
BaseStu.testStatic();
}
输出结果如下:
可以看出,在接口中用static修饰的方法,可以直接用接口名.方法名(这里BaseStu.testStatic())调用,并且实现类不能实现接口中static修饰的方法。