Javaインターフェイスは、インターフェイスを介して達成され、
なぜインターフェースを持っていますか?
何の多重継承は多重継承の機能を実現するためにインタフェースすることはできませんJavaの クラスが抽出された共通の同じ二つのことであり、インタフェースは、2つの異なるもの、抽出された特徴の一つとして見ることができるので。 EG:暁東と彼の犬がします彼らは両方の事それと同じ種類にはない、食べる?ではない確かに。彼らが使用して、この機能をインターフェイスに抽出することができます食べるようになるので、 機能の一部がクラスを作るために存在して不合理なクラスを完了するために、つまりはっきりインタフェースをショートボード
インターフェイスの機能
* * 1 :利用インタフェースは * インタフェース定義する * * 2 :Javaクラス及びインターフェースは、2つの平行な構造である * * 3 :インターフェース部材の定義 * JDK7以前:インターフェイスは、グローバル定数と抽象メソッドを定義することができ *>グローバル定数:公共 静的 決勝:しかし書き込みはしばしば省略されているパブリック 静的をfianl *>抽象メソッド:パブリック 抽象 * * jdk8:グローバル定数と抽象メソッドを定義するだけで、また、静的メソッドを定義することができ、デフォルトの方法 * * * 4 :それはインスタンス化できない、すなわち、インタフェースのコンストラクタを定義しない * * 5:Javaクラスの開発は、いくつかのmouthfuls(持つことによって実装する実装が使用される)ように、 * 実装は、すべてのメソッドを抽象クラスインターフェースをカバーする場合、この実装では、クラスをインスタンス化することができます * クラスは、すべての抽象メソッドは体重を終え実装していない場合は、この実装クラスは抽象クラスである * * * * 6:Javaクラスの実装を複数のインタフェース-----> 単一継承のJavaの限界を補う *形式:クラス AA 実装BB、CC、DD、EE * * * 7 :インタフェースと継承することができるだけでなく、多重継承の間のインタフェース * * 8 :特定は、そのインタフェースを使用:反射多型 * * 9:実際には、インタフェース仕様として見ることができます
インタビューの質問:
トラブルシューティング
インターフェース A { int型のx = 0 。 } クラスB { int型のx = 1 。 } クラス Cは延び Bが実装{ 公共 ボイドpXの(){ System.out.printlnは(X)を、} パブリック 静的 ボイドメイン(文字列[]引数){ 新しいC()pXの()。 }}
XのpX()メソッドは、仮パラメータを宣言していないので、ここで問題があります
インタフェース再生可能{ ボイドプレイ(); } インターフェースハネ{ ボイド遊び(); } インタフェース丸めることが延びている再生可能な、ハネ{ ボールボール = 新しいボール(「PingPangを」)。 } クラスボール実装丸める{ プライベート文字列名を、 パブリック文字列のgetName(){ 戻り名。 } 公共ボール(文字列名){ この .nameの= 名前。 } 公共 のボイド遊ぶ(){ ボール = 新しいボール( "サッカー" ); System.out.println(ball.getName())。 }}
巻き取り可能なインタフェースメソッドはインターフェースを継承しオーバーライドしない、
この変数を上書きしていないボール特性のボールが定義されて転動可能なインタフェースとして定義され、
インタフェースは、可変時定数を変更することができません
演習
二つのオブジェクトの比較を実装するためのインタフェースを定義します。入出力インタフェースCompareObject { } Lサークルは、クラス宣言rediusゲッターとセッターメソッドを提供する属性定義 リットルComparableCircleインターフェイスCompareObject Circleクラスと実装を継承するクラスを定義します。円の半径のうちの2つを比較するために使用ComparableCircleのcompareToクラスに与えられたピアインタフェースメソッドを実装します。 テストクラスInterfaceTestを定義し、2つのComparableCircleオブジェクトを作成し、2つのクラスを比較するcompareToメソッドの半径を呼び出します。 考察2つの矩形領域を比較し、クラスに実装ComparableRectangle compareToメソッドで指定された矩形定義されたクラスの長方形とComparableRectangleクラスの練習を参照