Java でのデフォルト メソッドの明示的な呼び出し
Java 8 では、既存の実装を壊すことなくインターフェイスを拡張する方法としてデフォルト メソッドが導入されました。しかし、メソッドのデフォルト実装がオーバーライドされている場合、または他のデフォルト実装と競合している場合、どのようにしてメソッドを呼び出すことができますか?
提供されたコードでは、foo() メソッドが A インターフェイスのデフォルト メソッドとして定義され、オーバーライドされています。 Bクラスで。 B クラスの A.foo() のデフォルト実装にアクセスするには、次の構文を使用できます。
A.super.foo();
これにより、デフォルトの実装がオーバーライドされていても呼び出すことができます。 A.super 参照は、B クラス オブジェクトではなく、A インターフェイス タイプを参照することに注意することが重要です。
public class ChildClass implements A, C { @Override public void foo() { // Override the default implementation System.out.println("ChildClass.foo()"); } public void callDefault() { // Invoke the A.foo() default implementation A.super.foo(); // Invoke the C.foo() default implementation C.super.foo(); } }
この例では、ChildClass は A インターフェイスと C インターフェイスの両方を実装し、それぞれ独自のインターフェイスを持っています。デフォルトの foo() メソッド。 A.super.foo() と C.super.foo() を使用すると、デフォルトの実装に明示的にアクセスでき、特定の動作や競合解決が可能になります。
以上がデフォルトのメソッドの実装がクラスでオーバーライドされるときに、Java で明示的に呼び出すにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。