設計の観点から言えば、インターフェイスは、将来のメンテナンスを容易にするために開かれた柔軟なコードを作成するために使用されると言えます。ケーススタディを参照すると、次のように言うのが正しいでしょうか。
この例のインターフェイスが使用されているのは、Professor クラスと HeadofDept クラスの両方が人を雇用する権限を持っているためです。近い将来、人を雇用する権利を与えられる可能性のある他の人を追加する可能性があると仮定します.
ご清聴ありがとうございました。
インターフェースを使用すると、コードでベース タイプ、つまり EmployerProfessor で EmployPeople() などのメソッドを呼び出すことができます。したがって、EmployerProfessor オブジェクトを渡す場合、コードは正確な実装が何であるかを知る必要はなく、employerPeople() を呼び出すことができることを知っているだけです。したがって、メソッド呼び出しの動的ディスパッチが可能になります。コンパイラの実装 (vtable など) を使用すると、正しいメソッドが呼び出されます。
インターフェースは常に柔軟であるとは限りません。実際に出回っている現在のコードが影響を受ける可能性があるため、インターフェースを変更するだけでは困難です。インターフェイスはコントラクトを提供し、それを実装するクラスに次のメソッドを提供する必要があることを伝えます。