Javaのインターフェースとは何ですか

(*-*)浩
リリース: 2020-09-17 15:15:19
オリジナル
36176 人が閲覧しました

Javaのインターフェースとは何ですか

Interface (英語: Interface) は、JAVA プログラミング言語における抽象型および抽象メソッドの集合であり、通常、interface で宣言されます。クラスはインターフェイスを継承することで、インターフェイスの抽象メソッドを継承します。

インターフェイスはクラスではありません。インターフェイスの記述方法はクラスと非常に似ていますが、異なる概念に属します。クラスはオブジェクトのプロパティとメソッドを記述します。インターフェイスには、クラスが実装するメソッドが含まれています。

インターフェイスを実装するクラスが抽象クラスでない限り、クラスはインターフェイス内のすべてのメソッドを定義する必要があります。

インターフェイスはインスタンス化できませんが、実装することはできます。インターフェイスを実装するクラスは、インターフェイスに記述されているすべてのメソッドを実装する必要があります。それ以外の場合は、抽象クラスとして宣言する必要があります。さらに、Java では、インターフェイス型を使用して変数を宣言したり、ヌル ポインターにしたり、このインターフェイスを実装するオブジェクトにバインドしたりすることができます。

インターフェースの宣言構文形式は次のとおりです。

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法}
ログイン後にコピー

Function

Java 言語仕様では、メソッドの特性には、メソッドの名前、パラメータの数とタイプのみが含まれますが、メソッドの戻り値の型、パラメータの名前、スローされる例外は含まれません。 Java コンパイラがメソッドのオーバーロードをチェックするとき、これらの条件に基づいて 2 つのメソッドがオーバーロードされたメソッドであるかどうかを判断します。ただし、Java コンパイラがメソッドの置換をチェックするとき、2 つのメソッド (スーパータイプとサブタイプ) によってスローされる戻り値の型と例外が同じかどうかをさらにチェックします。

インターフェイスの実装とクラスの継承のルールは異なります。データ セキュリティのため、継承中、クラスには直接の親クラスが 1 つだけあります (単一継承)。ただし、クラスは複数のインターフェイスを実装でき、インターフェイスは多重継承の欠点: 継承とインターフェイスの二重設計により、クラスのデータ セキュリティが維持されるだけでなく、隠れて多重継承が実装されます。

Java インターフェース自体には実装はありません。Java インターフェースは表現を含まず、パブリックな動作のみを記述するためです。そのため、Java インターフェースは Java 抽象クラスよりも抽象的です。ただし、インターフェイスはクラスではないため、new 演算子を使用してインターフェイスをインスタンス化することはできません。例: x=new COMParable(...);//これはエラーです。ただし、インターフェイス変数 Comparable x は宣言できます; //これは許可されます。

Java インターフェイスのメソッドは、abstract および public のみにすることができます。Java インターフェイスはコンストラクターを持つことはできません。Java インターフェイスは、public、static、final 属性を持つことができます。つまり、インターフェイス内のプロパティは public static Final int value=5; [1]

インターフェイスはメソッドの特性とメソッドの実装を分離します。この分離は、インターフェイスが多くの場合、そのロールに関連する操作とプロパティをパッケージ化するロールを表し、このインターフェイスを実装するクラスがこのロールを演じるアクターであるという事実に反映されています。役割は異なる俳優によって演じられますが、異なる俳優は共通の役割を演じること以外に共通のものを必要としません。

2 つのクラスで 2 つの類似した関数を使用し、それらのクラスを呼び出して実装を動的に決定します。その後、それらは抽象親クラスを提供し、子クラスはそれぞれ親クラスによって定義されたメソッドを実装します。

問題の発生: Java は単一継承言語です。通常の状況では、特定のクラスがすでにスーパークラスを持っている可能性があります。解決策は、親クラスをその親クラスに追加するか、親クラスにスーパークラスを与えることです。親クラス: クラス階層の最上位に移動するまで、親クラスに親クラスを加えたもの。このようにして、特定のクラスのプラグ可能性を設計すると、階層全体のすべてのクラスが変更されます。

プラグ可能性

階層構造内のどのクラスでもインターフェイスを実装できます。このインターフェイスは、このクラスのすべてのサブクラスに影響しますが、このクラスのスーパークラスには影響しません。このクラスは、このインターフェイスで指定されたメソッドを実装する必要があり、そのサブクラスは、このクラスからこれらのメソッドを自動的に継承できます。もちろん、これらのメソッドすべてまたは一部を置き換えることも選択できます。現時点では、これらのサブクラスにはプラグイン可能性 (そして、このインターフェイス タイプをロードして、それを実装するすべてのサブクラスを渡すことができます)。

私たちが気にしているのは、その特定のクラスではなく、このクラスが必要なインターフェイスを実装しているかどうかです。

インターフェイスは、アソシエーションとメソッド呼び出しのプラグ可能性を提供します。ソフトウェア システムの規模が大きくなるほど、ライフ サイクルは長くなります。インターフェイスは、ソフトウェア システムの柔軟性と拡張性を保証し、プラグ可能性が保証されます。

タイプ

Java インターフェイスを使用して、ソフトウェア ユニットを内部と外部で結合します。具象クラスの代わりに Java インターフェースを使用して、変数の型を宣言し、メソッドの戻り型宣言、パラメーターの型宣言を行い、データ型を変換します。

理想的な状況では、具象 Java クラスは Java インターフェースと抽象 Java クラスで宣言されたメソッドのみを実装し、余分なメソッドを提供すべきではありません。

階層構造

Java インターフェイス (および抽象クラス) は、通常、型の階層構造の開始点として使用されます。

クラスに既にプライマリ スーパータイプ (親クラス) がある場合、インターフェイスを実装することで、クラスは別のセカンダリ スーパータイプを持つことができます。このセカンダリ スーパータイプは、混合型と呼ばれます。

関連する学習の推奨事項:

Java 基本チュートリアル

以上がJavaのインターフェースとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!