Javaのインタビューでこの質問をしましたが、どこでも答えが見つかりませんでした。Javaで一般的なインターフェイスを実装している2つの既に拡張されたクラスでメソッドを重複させないようにする
X Y
| |
A B
Interface I{
m1();
}
クラスAおよびクラスBはそれぞれクラスXおよびクラスYから拡張されています。
XとYは変更できません。 AとBはインタフェースIを実装し、メソッドm1()は両方とも同じ定義を持ちます。
重複コードの書き込みを避ける方法。
java-8インターフェイスでメソッドを定義できるため、Java 8は使用できません。
ありがとうございます。
おそらくプロキシを使用する:/ – MadProgrammer
m1()を実行し、AとBの両方で保持されるCのインスタンスを持つクラスCを作成できます。もちろん、m1()の実装を前提としていますAとBの両方が十分に類似しているので動作します。その場合、クラス階層はおそらく間違っています。現実の世界では、私はこれについて心配するのに多くの時間を費やしていないでしょう、これは恐ろしい質問のようです。 –
代理人、代理人、代理人。 – EJP