この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

インターフェース

インターフェースとは、実装のない、メソッド署名 (戻り値とパラメータの定義) の名前付きセットです。インターフェースにより、コードで抽象化レイヤを使用できます。インターフェースは、メソッドの特定の実装をメソッドの宣言から切り離します。これにより、1 つのメソッドを特定のアプリケーションに基づいて別々に実装できます。たとえば、冷蔵庫とトースターはどちらも台所用品の種類です。すべての台所用品にはモデル番号があり、対応するインターフェースは getModelNumber メソッドを持つことができます。ただし、モデル番号の形式は台所用品の種類によって異なります。Fridge クラスと Toaster クラスは、それぞれ異なる形式のモデル番号を返すようにこのメソッドを実装できます。

インターフェースでは、ある種の決まり事が規定されるため便利です。クラスでインターフェースが実装されていると、そのインターフェースのメソッドがクラスに表示されることが保証されます。複数の異なるクラスが同じインターフェースを実装できます。

Fridge クラスと Toaster クラスによって実装されるインターフェースを作成して試してみましょう。

  1. クラスを作成したときと同じ方法でインターフェースを作成します。
    1public interface KitchenUtility {
    2
    3  String getModelNumber();
    4
    5}
  2. Fridge クラスを変更してこのインターフェースを実装します。太字の語を最初の行にあるクラスの定義に追加するだけです。
    1public class Fridge implements KitchenUtility {
  3. Toaster という新しいクラスを定義して、同じ KitchenUtility インターフェースを実装します。
    1public class Toaster implements KitchenUtility {
    2
    3    private String modelNumber;
    4
    5    public String getModelNumber() {
    6        return 'T' + modelNumber;
    7    }
    8
    9}
    Toaster クラスと Fridge クラスは同じインターフェースを実装したため、どちらにも getModelNumber メソッドがあります。Toaster または Fridge のインスタンスを KitchenUtility として扱うことができるようになりました。
  4. 次の例では Toaster および Fridge のインスタンスを作成します。続いて、これら 2 つのオブジェクトを使用して KitchenUtility インスタンスとして扱うことで、KitchenUtility オブジェクトの配列を作成します。
    1Fridge f = new Fridge('MX', 200);
    2Toaster t = new Toaster();
    3KitchenUtility [] utilities = new KitchenUtility[] { f, t };
    4String model = utilities[0].getModelNumber();
    5System.debug(model);