まず、概念
1.インタフェースは、メソッドのデフォルトの実装を提供し、クラスは、このメソッドをオーバーライドする強制しません
2.デフォルトの方法は、修正するために、デフォルトのキーワードを使用しています
第二に、背景の導入
1.新しいメソッドを追加するためのインタフェースが実装クラスのすべてが新しいメソッドは、既存の実装クラスに影響を与えた書き直す必要がある場合は、アプリケーションをクラッシュさせる可能性があり
2.デフォルトの方法を書き換えることを強制することはできません、それは既存の実装クラスには影響しません
3例のforeachのIterableインターフェースの方法は、デフォルトの方式で、オブジェクトパラメータは、消費者であります
第三に、使用
実装クラスが複数のインタフェースを実装する場合、複数のインターフェイスが同じ既定の方法である1、実装クラスは、そうでない場合、コンパイルエラーをデフォルトのメソッドをオーバーライドする必要があります
。彼らのロジック実装クラスを書き換えます
デフォルトの方法を使用するインターフェイスを指定するには、superキーワードを使用して、B。実装クラス
2.インターフェイスの静的メソッド
インターフェイスは、静的メソッドを定義しサポートし、デフォルトの方法は、デフォルトのキーワードは、静的に置き換えることができています
クラスがインターフェイスの静的メソッドとして使用することができます継承した後、デフォルトのインターフェイスメソッド3を使用して、あなたがオブジェクトを作成することができます
参考:
https://www.jianshu.com/p/a58b6f5b0c54
https://www.jb51.net/article/137630.htm