まず、インターフェースは何ですか
インターフェースは、コンピュータのマザーボード上のPCI仕様スロットがあれば、PCIインタフェースカードが従うことが、どのようなブランドは、PCIスロットに挿入することができるように、Javaインタフェースに類似している、上記ハードウェア・インターフェースと同様の仕様です。だから、インターフェースは仕様です。インターフェイスは、外部から与えられたものの機能のいくつかを説明することです。そのクラスは複数のインタフェースを実装することができ、我々はまた、マルチステート機能を実現するためのインタフェースを使用することができますが、インターフェースは、Javaの単一継承の弱点を補います。
我々は、インタフェースメソッドのみ宣言はなく、特定の実装することができ、インタフェースキーワードはインターフェイス、一般的に使用される方法またはインタフェース宣言定数を定義し使用し、これは抽象クラスが同じではありませんです。インターフェイスは、高レベルの抽象化です。インタフェース定義フォーマットであります
{パブリックインターフェースインタフェース名
//あなたは、定数を定義することができます
//メソッド宣言だけ方法が、公開されています。
パブリックvoidメソッド名();
...
}
クラスのみimplementsキーワードクラスを使用する必要があり、インターフェイスを実装するためには、達成するためのインタフェースメソッドのすべてを実装する必要があります
パブリッククラス{インタフェースの実装クラス名を実装します
//インタフェースメソッドの実装
}
第二に、アプリケーションインタフェース
良いインターフェイスは非常に単純ではありません設計するために、当然のことながら、実際には、非常にシンプルなインターフェイスを定義し、このインターフェイス定数とメソッド良いものを望んする必要があります。しかし、この技術は、次のサンプルコードは非常に簡単です:
// 定義方法インターフェイス パブリック インターフェイスMyInterface { // プログラムインターフェースによって使用される定数の定義は、インタフェースのみ定数有することができます。 公共の 静的な 最終的な ダブル。価格= 1450.00 ; パブリック 静的 最終 int型のカウンター= 5。; // インターフェイスのすべてのメソッドは、その方法ではありません。 公共 ボイド追加(int型の Xは、int型Y)を、 公共の ボイドボリューム(INTの X、int型 Y、int型Zを); }
次のようにインターフェイスを実装支障はありません。
// 实现接口 パブリック クラス MyImpleが実装Myinterface { @Override 公共 ボイドは(追加のint X、int型のy)を{ } @Override 公共 ボイドボリューム(INTのx、int型の Y、int型Z){ } }
クラスは、Javaは単一継承なので、インターフェースはこのを補うことができ、複数のインタフェースを実装することができます。私たちは、インターフェイスを定義することができます
パブリック インターフェースMyInterface2 { 公共 ボイドcountpp(); }
複数のインターフェイスを実装するために上記の実装クラスを変更し、コンマは、インタフェースのすべてのメソッドを実装する、もちろん、使用されてもよいです。
// 实现接口1、接口2 パブリック クラス MyImpleが実装Myinterface、MyInterface2を{ @Override 公共 ボイド追加(int型のx、int型のY){ } @Override 公共 ボイドボリューム(INTのx、int型の Y、int型Z){ } @Override 公衆 ボイドcountpp(){ } }
第三に、インターフェースや抽象クラスの違いは何ですか
抽象クラスとインターフェイスは、2つのメカニズムが抽象クラスの定義、でも交換可能なので、多くの開発者のためのサポートの面で大きな類似性との間に抽象クラス、抽象クラスとインタフェースの定義のためのJava言語によってサポートされていたされています抽象クラス定義は抽象クラスとインターフェイスのための比較的任意選択があるとき。実際には、両者の違いがたくさん残っています
非抽象クラスの抽象メソッドを持つことができます1、。しかし、インタフェースはインタフェースの唯一の抽象メソッドが抽象クラスで具体ノルムの種類は、テンプレートのデザインで具現化することができます。
図2に示すように、インターフェース(インターフェース)は、抽象クラスの変異体です。インターフェイスでは、すべてのメソッドは抽象的です。多重継承は、このインタフェースを実装することによって得ることができます。すべてのインターフェイスメソッドは、プログラム本体せず、抽象的です。インターフェースは、静的最後のメンバ変数を定義することができます。そして、同様のインタフェースを達成するためのサブクラスでは、実現に加えて、インタフェース定義から動作を継承しません。特別なクラスのインターフェイスを実装するときに(与えの手順)全てのこのようなインターフェースの定義。そして、それは、画像のインタフェースクラスコール・インタフェースのメソッドのいずれかを実装することができます。参照変数の型として、インタフェース名の使用を可能にする抽象クラスからです。通常、動的に有効になりますバインディング。参照タイプをインターフェースに変換することができる、またはインターフェイスタイプ、instanceof演算子の変換は、オブジェクトのクラスは、インターフェイスを実装しているかどうかを決定するために使用することができます
図3に示すように、インターフェースは、抽象クラス缶の静的メソッドを定義することはできません。静的変数内のインターフェイスはすべて定数である、抽象クラスは、通常の変数を持つことができます。
初期化ブロック4.インタフェースコンストラクタとせず、抽象クラスが存在してもよいです。
5.クラスは複数のインタフェースを実装するが、唯一の抽象クラスを継承することができます。