#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。 抽象クラスは複数のクラスを抽象化したテンプレートですが、この抽象化をさらに徹底すると、より特殊な「抽象クラス」であるインターフェース(Interface)を抽出することができます。インターフェイスは Java の最も重要な概念の 1 つです。特別なクラスとして理解できます。違いは、インターフェイスのメンバーが実行本体を持たず、グローバル定数とパブリック抽象メソッドで構成されることです。Java インターフェースの修飾子は、abstract または Final にすることができます。インターフェイスは特別なクラスとして理解できます。違いは、インターフェイスのメンバーが実行本体を持たず、グローバル定数とパブリック抽象メソッドで構成されている点です。インターフェイスのメソッドはデフォルトでパブリック抽象メソッドであり、変数を定義できないことです。定数はインターフェイス内で定義できるため (最終的な変更により定数になります)、インターフェイスのプロパティはデフォルトで public static Final 定数となり、初期値を割り当てる必要があります。
インターフェースの定義
Javaインターフェースの定義は基本的にクラスと同じですが、インターフェース定義で使用するキーワードはinterfaceです。インターフェイス定義の構文は次のとおりです。 形式は次のとおりです。[public] interface interface_name [extends interface1_name[, interface2_name,…]] { // 接口体,其中可以包含定义常量和声明方法 [public] [static] [final] type constant_name = value; // 定义常量 [public] [abstract] returnType method_name(parameter_list); // 声明方法 }
Java インターフェースの修飾子
インターフェースは非常に重要です。状況を説明するために、ここでもう少し詳しく説明します。 :
(1) インターフェイスは、システムが外部に提供するすべてのサービスを記述するために使用されるため、インターフェイス内のメンバー定数とメソッドは、外部ユーザーが確実にアクセスできるようにパブリック型である必要があります。 (2) インターフェイスは、システムが実行できることのみを説明しますが、その方法は指定していないため、インターフェイス内のメソッドは抽象メソッドです; (3) インターフェイスは次のことを行います。特定のインスタンスに関連する詳細は含まれないため、インターフェイスにはコンストラクターはなく、インスタンス化できません。インスタンス変数はなく、静的変数のみです。 (4) インターフェイス内の変数はすべてに共通です。実装クラス。共通であるため、変更されていない必要があります。変更されたものは共有としてカウントできないためです。したがって、変数は不変 (最終) 型、つまり定数です。 (5) インターフェース内で変数を定義できない?インターフェイスで変数を定義できるが、インターフェイス内のメソッドが抽象である場合、インターフェイス内の動作を通じてプロパティを変更することはできません。インターフェイスを実装するオブジェクトの動作を通じてインターフェイス内のプロパティを変更できるため、それは問題ではない、と言う人もいます。もちろんこれで問題はありませんが、このような状況を考慮してください。インターフェイス A にパブリック アクセスを持つ静的変数 a がある場合。 Java のセマンティクスによれば、インターフェイスを実装するオブジェクトを使用せずに変数 a にアクセスでき、A.a = xxx; を通じてインターフェイス内の変数 a の値を変更できます。これが抽象クラスで実行できるのと同様に、インターフェイス A を実装するすべてのオブジェクトには、変更された a の値が自動的に設定されます。つまり、1 か所で a が変更されると、これらすべてのオブジェクトの a の値も追従します。 。 かわった。これと抽象クラスの違いは何ですか? インターフェースのより高い抽象レベルをどのように反映するか? インターフェースが提供する統一プロトコルをどのように反映するか? では、インターフェースの抽象化は何に使われるのでしょうか?したがって、インターフェース内に変数を出現させることはできず、変数があるとインターフェースが提供する統一抽象化の考え方と矛盾します。したがって、インターフェイス内の属性は、読み取りのみが可能で変更できない定数である必要があり、この方法でのみ、インターフェイスを実装するオブジェクトに統一された属性を提供できます。 平たく言えば、何かを変更する必要があると思われる場合は、インターフェイスではなく独自の実装に入れてください。インターフェイスは、あるタイプの属性と動作をより高いレベルで抽象化したものにすぎません。 。変更に対してクローズされ、拡張 (さまざまな実装) に対してオープンであるインターフェイスは、オープン-クローズの原則の現れです。 つまり: インターフェイスのデフォルトのメソッドはpublic abstract
;インターフェイスでは変数を定義できず、定数 (および最終的な変更を加えたもの) のみを定義できます。 )は定数になります)。したがって、インターフェイスのプロパティはデフォルトで
public staticfinal
注: Final と Abstract を同時に使用することはできません。
プログラミング関連の知識について詳しくは、プログラミング教育をご覧ください。 !
以上がJavaインターフェイスの修飾子は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。