接口可以部分实现方法吗?

时间:2016-03-23 16:48:02

标签: java interface

接口是否可以部分实现方法?这是我在考试中提出的一个问题。我对" 部分实施"没有明确的想法。是否意味着该接口的方法有一些操作?但通常我们只有接口中没有body的方法。所以如果有人能回答我,我会更感恩。

2 个答案:

答案 0 :(得分:3)

default可以拥有"部分"的唯一方式实现的方法是通过Java 8的// will compile in Java 8 only interface Foo { default void foo() { System.out.println("Default foo implementation"); } } 方法:

{{1}}

Java 8之前的标准方法(并且在概念上仍然有效取决于您的范围)是让[n abstract]类为其子级提供一个具有默认行为的方法。

答案 1 :(得分:0)

我能解释这个问题以便得到“是”答案的唯一方法是将方法的“部分”部分实现为默认方法,然后从覆盖它的方法实现explicitly call the default method

public interface Swallow {

    default double getMaxAirspeed() {
        // Partial implementation of the method to be called by its full implementation, which should override this default method 
        return 1.0;
    }

}

public class AfricanSwallow implements Swallow {

    public double getMaxAirspeed() {
        final double initialValue = Swallow.super.getMaxAirspeed();
        return initialValue * 2;
    }

}