直接上代码看:
package com.bones.test03;
public class Test01 {
}
//java7 接口只能有抽象方法
interface Inter7{
void m1();
}
//java8 接口中static(静态不可重写)和default(可以重写)修饰的方法可以拥有方法体
interface Inter8{
void m1();
static void m2(){//(静态不可重写)
}
default void m3(){//(可以重写)
}
}
//java9 接口中可以使用private修饰方法,并拥有方法体,但是接口中的成员变量仍然不能用private修饰
interface Inter9{
void m1();
static void m2(){
}
default void m3(){
m4();//可以调用private修饰的方法
}
private void m4(){
}
}
总结
JAVA7 中,接口只能有抽象方法
JAVA8 中,接口中static(静态不可重写)和default(可以重写)修饰的方法可以拥有方法体
JAVA9 中,接口中可以使用private修饰方法,并拥有方法体,但是接口中的成员变量仍然不能用private修饰
感觉: 接口中的代码越来越靠近抽象类,但是仍然是支持多继承的,使得多态更加灵活。



