JDK1.8 是自 jdk1.5 以后,变化最大的一次*
鉴于这几天有人问到jdk1.8接口的特点的问题,这里简单阐述一下1.8关于接口的新特性,我会用理论加实践的方式阐述清楚接口新特性
开始就说说明新特性增加的地方,稍后拿出实例来证明该说明
在新特性中,接口中除了定义抽象方法之外还可以定义静态方法和默认方法
a.证明接口普通的方法都是抽象方法
普通方法不加修饰
public interface test {
void test1();
}
普通方法加上修饰
public interface test {
public abstract void test1();
}
加上修饰后,idea中的显示如下图
由上诉两段代码加两张图片很容易得出:Java接口的普通方法默认修饰为:public abstract
b.证明接口中可以定义静态方法,静态方法不是抽象方法
public interface test {
static void t(){
System.out.println(123);
}
}
综合上诉一段代码加两张截图不难看出:静态方法一定不是抽象方法,接口中可以定义静态方法,但是该静态方法不是抽象方法,更不能被abstract修饰,我的是jdk1.8,在jdk1.8中该静态方法是不行的
c.默认方法
public interface test {
default void t(){
System.out.println(123);
}
}
默认方法和静态方法相似,放一段默认方法代码块,这里就不加证明了,希望通过这几段证明,能帮助你理解接口新特性,可以在jdk1.8和jdk1.8之前的版本中分别进行该测试,就能很好证明该新特性