この例では、Java Web サイトのチュートリアルページ. 2 つのインターフェイスが同じデフォルト メソッドを定義していますstartEngine()
。クラスは両方のインターフェイスを実装し、明らかな競合のためにFlyingCar
オーバーライドする必要があります。startEngine()
public interface OperateCar {
// ...
default public int startEngine(EncryptedKey key) {
// Implementation
}
}
public interface FlyCar {
// ...
default public int startEngine(EncryptedKey key) {
// Implementation
}
}
public class FlyingCar implements OperateCar, FlyCar {
// ...
public int startEngine(EncryptedKey key) {
FlyCar.super.startEngine(key);
OperateCar.super.startEngine(key);
}
}
from がinとinterfacesの両方のバージョンを参照するために使用されるFlyingCar
理由がわかりません。私が理解しているように、どのスーパークラスでも定義されていないため、常駐とは見なされません。また、 と で実装されている 2 つのインターフェイスの関係もわかりません。super
startEngine()
OperateCar
FlyCar
startEngine()
super
FlyingCar