明示的なインターフェイス実装が必要な理由
同じメソッドを定義する複数のインターフェイスを扱う場合、明示的なインターフェイス実装により、コンパイラが正しいメソッドを選択することが保証されます。実装。 IDoItFast インターフェイスと IDoItSlow インターフェイスの両方が Go() メソッドを定義するシナリオを考えてみましょう。
クラスが両方のインターフェイスを実装する場合のあいまいさを避けるには、明示的な実装が必要です。以下の例では:
public interface IDoItFast { void Go(); } public interface IDoItSlow { void Go(); } public class JustDoIt : IDoItFast, IDoItSlow { void IDoItFast.Go() { } void IDoItSlow.Go() { } }
各インターフェイスに Go() を明示的に実装することで、JustDoIt クラスは Go() メソッドごとに個別の実装を提供できます。これにより、コンパイラが両方のインターフェイスに対して単一の実装を選択できなくなります。
したがって、複数のインターフェイスで定義された同じメソッドに異なる実装を提供する場合は、明示的なインターフェイス実装が不可欠です。
以上が競合するメソッド名を処理するために明示的なインターフェイス実装を使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。