Javaでリファクタリングを行う必要があり、ある程度のバイナリ互換性を維持する必要があります。この場合、もうどこにも使用されておらず、かなり大きな(そして非推奨の)外部依存関係を必要とするいくつかのレガシーインターフェースを削除したいと思います。
C
インターフェイスを実装するクラスがI
あり、のインスタンスでメソッド(インターフェイスで宣言されている)を呼び出すコードがありますC
。呼び出し元のコードはC
、インターフェイスだけでなく、を使用していることを認識しています。
class C implements I {
void theMethod(){} ; // is declared in the interface I
}
C object;
object.theMethod();
クラス定義からインターフェイスを削除しても(ただし、すべてのメソッドは保持します)、呼び出し元のコード(インターフェイスをまったく参照していません)は引き続き機能しますか(再コンパイルなし)?