防御メソッドおよび「仮想拡張メソッド」とも呼ばれるデフォルト メソッドがあります。
私はデフォルト メソッドの多大な価値を高く評価していますが (ある面では C# メソッドよりもさらに強力です)、ソース コードにアクセスせずに既存のインターフェイスを拡張することを許可しないという決定は何だったのだろうかと思います。
SO での彼の回答の 1 つで、 Brian Goetz は、既定のメソッドは利便性とインターフェイスの進化のために非常に設計されていると述べました。したがって、インターフェイスを作成すると、通常は別のクラスに配置する必要があるあらゆる種類のユーティリティ メソッドをそこに詰め込むことができます。それでは、さらに一歩進んで、私たちの管理下にないインターフェースにそれを許可してみませんか?