jdk1.8之前的接口
- jdk1.8之前不能存在静态的方法,全是抽象的方法,不能有方法体存在。
public interface NewInterface {
public void run();
}
jdk1.8的接口
- jdk1.8 接口可以有静态的方法,静态方法不能被重写,可以通过 接口.方法名() 进行访问。
public interface NewInterface {
public static void run(){
System.out.println("我在跑步");
}
}
public class Student {
public static void main(String[] args) {
NewInterface.run();
}
}
- jdk1.8接口可以有非静态的方法。但是要被default修饰。如果实现类实现了多个接口,且接口存在同名同参的方法,编译器必须要实现类重写同名同参的方法,因为实现类不知道继承那个接口的方法,重写的方法不能用default修饰,default只能修饰接口中的方法。
public interface newStudent {
default void run(){
System.out.println("新的学生");
}
static void go(){
System.out.println("我在走");
}
}
public interface NewInterface {
default void run() {
System.out.println("我在跑步");
}
}
public class Student implements NewInterface,newStudent{
@Override
public void run() {
System.out.println("子类的方法");
}
}