public class TestInterface3 {
public static void main(String[] args) {
TestA a = new TestA();
a.moren1();
a.moren2();
A1.staticMethod();//静态方法用接口名直接调
TestA.staticMethod();//调用实现类的静态方法
TestB b = new TestB();
b.moren1();
}
}
interface A1 {
default void moren1() {
System.out.println("A1.moren1");
}
default void moren2() {
System.out.println("A1.moren2");
}
static void staticMethod() {
System.out.println("A1.staticMethod");
}
}
interface B1 {
default void moren1() {
System.out.println("B1.moren1");
}
}
class TestA implements A1 {
@Override
public void moren1() {
System.out.println("TestA.moren1");
}
static void staticMethod() {
System.out.println("TestA.staticMethod");
}
}
class TestB implements A1,B1 {
// 因为A1和B1里都有moren1方法,无法区分是哪一个,所以必须重写
@Override
public void moren1() {
System.out.println("TestB.moren1");
}
}
Java-接口的新特性
于 2024-04-02 16:15:14 首次发布