Java接口

一、接口可以定义实现的方法吗?
答:可以,从Java1.8版开始可以通过关键字default添加默认方法(只能用于接口)或static添加静态方法。

public interface Test {

    default void test1() {

    }

    static void test2() {

    }
}


二、接口默认方法好处在哪里?
接口添加抽象方法,则实现类都要去实现该方法,而默认方法只需在需要的实现类里重写该方法即可,不用改动其他实现类。
三、接口静态方法能重写吗?
不能,只能通过“接口名.静态方法名”进行调用
四、接口方法冲突优先级
场景1:两个接口包含同名默认方法(或1个抽象1个默认或两个抽象),则实现此两个接口的实现类需要重写该同名方法(其中可以通过“父接口.super.方法名”调用父接口的默认方法)

public interface TestOne {
    default void test() {}
}

public interface TestTwo {
    default void test() {}
}

public class TestThree implements TestOne, TestTwo {
    @Override
    public void test() {
        TestOne.super.test();
        TestTwo.super.test();
    }
}


场景2;爷接口定义抽象方法,父接口定义同名的默认方法,则子接口或类不用必须实现抽象方法

你可能感兴趣的:(Java,java,接口)