オブジェクト指向プログラミングでは、クラスが何を実行するかを定義することは役に立ちますが、どのように実行するかは定義しません。
抽象メソッドは実装を提供せずにメソッドのシグネチャを定義し、サブクラスはそのメソッドを実装する必要があります。
Java のインターフェイスを使用すると、何を行うべきかの定義とそれを行う方法の実装を完全に分離できます。
インターフェイスでは本体なしでメソッドを指定できますが、これはクラスによって実装する必要があります。
インターフェイスを実装できるクラスの数に制限はなく、クラスは複数のインターフェイスを実装できます。
インターフェイスを実装するには、クラスは記述されたメソッドの実装を提供する必要があります。
異なるクラスは同じインターフェイスを異なる方法で実装できますが、同じメソッドのセットを共有します。
インターフェイスを使用すると、異なるクラスのオブジェクトを互換的に扱うことができるため、ポリモーフィズムが可能になります。
JDK 8 では、インターフェイスがメソッドのデフォルト実装を定義できる機能が導入され、インターフェイスで動作を指定できるようになりました。
標準実装にもかかわらず、インターフェイスの本来の目的は、ほとんど変更されていないものだけを定義することです。
最初は従来のインターフェイスに焦点を当て、章の最後で標準的な方法について説明します。
アクセスインターフェイス名 {
ret-type メソッド名 1(param-list);
ret-type メソッド名 2(param-list);
タイプ var1 = 値;
タイプ var2 = 値;
// ...
ret-typeメソッド名N(param-list);
タイプ varN = 値;
}
インターフェイスへのアクセスは、パブリック アクセスまたは標準アクセス (パッケージ プライベート) にすることができます。
アクセス修飾子が含まれていない場合、インターフェイスにはそのパッケージのメンバーのみがアクセスできます。
パブリックとして宣言すると、インターフェイスは任意のコードで使用でき、同じ名前のファイル内に存在する必要があります。
インターフェイス名には、任意の有効な識別子を使用できます。
インターフェイスの従来の形式では、メソッドは戻り値の型とシグネチャのみで宣言され、本質的には抽象メソッドです。
このインターフェイスを実装するクラスは、暗黙的にパブリックであるすべてのメソッドの実装を提供する必要があります。
インターフェイス内の変数はインスタンス変数ではありません。これらは暗黙的に public、final、static であり、初期化する必要があります (定数です)。
インターフェイス定義の例:
パブリック インターフェイス シリーズ {
int getNext(); // シリーズの次の数値を返します
無効なリセット(); // 再起動
void setStart(int x); // 初期値を定義
}
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3