JAVA8 之前,接口里的方法要求全部是抽象方法。
JAVA8(含 8)之后,以后允许在接口里定义默认方法和静态方法。
JDK8 新特性_默认方法
Java 8 及以上新版本,允许给接口添加一个非抽象的方法实现,只需要使用 default 关键字即可,这个特征又叫做默认方法(也称为扩展方法)。
默认方法和抽象方法的区别是抽象方法必须要被实现,默认方法不是。作为替代方式,接口可以提供默认方法的实现,所有这个接口的实现类都可以得到默认方法。
public class Test {
public static void main(String[] args) {
A a = new Test_A();
a.moren();
}
}
interface A {
default void moren() {
System.out.println("我是接口 A 中的默认方法!");
}
}
class Test_A implements A {
@
Override
public void moren() {
System.out.println("Test_A.moren");
}
}
JDK8 新特性_静态方法
JAVA8 以后,我们也可以在接口中直接定义静态方法的实现。这个静态方法直接从属于接口(接口也是类,一种特殊的类),可以通过接口名调用。
如果子类中定义了相同名字的静态方法,那就是完全不同的方法了,直接从属于子类。可以通过子类名直接调用。
public class Test {
public static void main(String[] args) {
A.staticMethod();
Test_A.staticMethod();
}
}
interface A {
public static void staticMethod() {
System.out.println("A.staticMethod");
}
}
class Test_A implements A {
public static void staticMethod() {
System.out.println("Test_A.staticMethod");
}
}
静态方法和默认方法
本接口的默认方法中可以调用静态方法。
public class Test {
public static void main(String[] args) {
A a = new Test_A();
a.moren();
}
}
interface A {
public static void staticMethod() {
System.out.println("A.staticMethod");
}
public
default void moren() {
staticMethod();
System.out.println("A.moren");
}
}
class Test_A implements A {
public static void staticMethod() {
System.out.println("Test_A.staticMethod");
}
}
标签:静态方法,void,接口,默认,JDK8,staticMethod,Test,public
From: https://www.cnblogs.com/nylgwn/p/16910109.html