ホームページ Java &#&チュートリアル Javaのインターフェースとは何ですか

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

May 22, 2019 am 11:26 AM
java

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Java における完全数のガイド。ここでは、定義、Java で完全数を確認する方法、コード実装の例について説明します。

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Java のスミス番号のガイド。ここでは定義、Java でスミス番号を確認する方法について説明します。コード実装の例。

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプ Java での日付までのタイムスタンプ Aug 30, 2024 pm 04:28 PM

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルの量を見つけるためのJavaプログラム カプセルの量を見つけるためのJavaプログラム Feb 07, 2025 am 11:37 AM

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4

Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Spring Tool Suiteで最初のSpring Bootアプリケーションを実行するにはどうすればよいですか? Feb 07, 2025 pm 12:11 PM

Spring Bootは、Java開発に革命をもたらす堅牢でスケーラブルな、生産対応のJavaアプリケーションの作成を簡素化します。 スプリングエコシステムに固有の「構成に関する慣習」アプローチは、手動のセットアップを最小化します。

See all articles