简要说明
接口新增了两个关键字:default和static
之前接口中,无方法体方法,需要在实现类中进行重写实现;
java8中,方法前加入default,可以在方法中加入方法体,实现类中不需要进行重写实现该接口;如果一个类实现多个接口,接口中有相同的default接口方法(非重载方法),则需要重写该接口。static 方法可以通过 接口.方法 直接调用,跟平时的静态方法一样。
代码详解
package com.test.service;
public interface DefaultService {
//实现类必须重写该方法
void get();
//多接口中出现相同方法,必须重写
default void get1() {
System.out.println("this is default get1()");
}
//不需要重写
static void get2() {
System.out.println("this is static get2()");
}
interface default2 {
default void get1() {
System.out.println("this is default2 get1()");
}
}
//实现类
class test implements default2, DefaultService {
@Override
public void get() {
}
@Override
public void get1() {
default2.super.get1();
}
}
public static void main(String[] args) {
//接口调用
new test().get1();
//静态接口调用
get2();
//普通接口调用
new test().get();
}
}