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