1.なぜインターフェイスを使用するのか
要件がある場合:盗難防止ドアの機能が必要です。ドアには「開いた」と「クローズ」の機能があり、ロックには「ロック」と「開口部」の関数があります。
分析:まず第一に、盗難防止ドアはドアです。ドアにはドアを開閉する機能があり、ロックもあります。ロックにはロック解除とロックがあります。オブジェクト指向プログラミングのアイデアによれば、ドアとロックの両方をクラスと見なし、個別に存在します。ただし、盗難防止ドアは、ドアとセルフロックから継承することはできません。盗難防止ドアはロックではありません。これは、ISの関係に準拠していません。 Javaでは、単一の相続がサポートされています。では、この問題をどのように解決しますか?現時点では、インターフェイスを使用する必要があります。
2。インターフェイスとは何ですか
ソフトウェアでは、インターフェイスは仕様と標準です。クラスの動作を制約することができ、いくつかの方法機能のコレクションです。ただし、メソッドの実装はありません。インターフェイスは実際には特別な抽象クラスと見なすことができますが、それらを表すために抽象クラスとはまったく異なる方法を使用します。 2つの設計概念も異なります。抽象クラスはコードの再利用を助長し、インターフェイスはコードの拡張とメンテナンスを助長します。
3。抽象クラスとインターフェイスの違い:
01Abstractクラスは、メンバーメソッドの実装の詳細を提供できますが、インターフェイスにはパブリックアブストラクトメソッドのみが存在できます。
02。抽象クラスのメンバー変数はさまざまなタイプである可能性がありますが、インターフェイスのメンバー変数はパブリック静的な最終タイプのみであることができます。
03。インターフェイスには静的コードブロックと静的メソッドを含めることはできませんが、抽象クラスには静的コードブロックと静的メソッドがあります。
04。クラスは1つの抽象クラスのみを継承でき、クラスは複数のインターフェイスを実装できます。
4.インターフェイスを定義する方法
まず構文を見てみましょう:
[修飾子]インターフェイスインターフェイス名拡張親インターフェイス1、親インターフェイス2、...
{
//一定の定義
//メソッド定義
}
クラスにインターフェイス構文を実装してください。
クラスクラス名親クラス名インターフェイス1、インターフェイス2、...
{
//クラスメンバー
}
5.インターフェイスポイントの定義
01。インターフェイスの命名ルールは、クラスのルールと同じです。修飾子が公開されている場合、インターフェイスはプロジェクト全体に表示されます。修飾子が省略されている場合、インターフェイスは現在のパッケージでのみ表示されます。
02。定数はインターフェイスで定義できますが、変数は定義できません。インターフェイス内の属性を定義する場合、逆コンパイルを通じて、パブリックスタティックファイナルで自動的に変更されることがわかります。インターフェイス内の属性はすべてグローバルな静的定数であり、インターフェイス内の定数は、定義するときに初期値を指定する必要があります。
03。インターフェイス内のすべてのメソッドは抽象的なメソッドであり、インターフェイス内のメソッドはパブリックアブストラクトで自動的に変更されます。つまり、インターフェイスにはグローバルな抽象的なメソッドのみがあります。
04。インターフェイスをインスタンス化することはできず、インターフェイスに構造がありません。
05継承関係は、インターフェイス間の拡張を通じて実現できます。 1つのインターフェイスは複数のインターフェイスを継承できますが、インターフェイスはクラスを継承することはできません。
06。インターフェイス実装クラスは、インターフェイスのすべてのメソッドを実装する必要があります。それ以外の場合は、抽象クラスとして定義する必要があります。