インタフェースpublic interfaceインタフェース名{}classクラスimplementsインタフェース{}

5060 ワード

1.1インタフェースコンセプトインタフェースは機能の集合であり、同様にデータ型と見なすことができ、抽象クラスよりも抽象的な「クラス」である.インタフェースは、備えるべき方法のみを記述し、具体的な実装は行われず、具体的な実装は、インタフェースの実装クラス(インタフェースに相当するサブクラス)によって行われる.このように機能の定義と実現を分離し,プログラム設計を最適化した.すべてのものに機能があり、すべてのものにインタフェースがあることを覚えておいてください.1.2インタフェースの定義は定義クラスのclassとは異なり、インタフェースの定義にはinterfaceキーワードが必要である.インタフェースを定義するのは依然として.JAvaファイルは、宣言時にinterfaceキーワードとして使用するコンパイル後も生成されます.classファイル.この点は,インタフェースを機能宣言のみを含む特殊なクラスと見なすことができる.定義形式:public interfaceインタフェース名{抽象メソッド1;抽象メソッド2;抽象メソッド3;}
元のclassの代わりにinterfaceを使用します.その他のステップは定義クラスと同じです.インタフェースのメソッドはすべて共通アクセスの抽象メソッドです.インタフェースでは一般的なメンバー変数1.3クラスを定義できません.インタフェースクラスとインタフェースの関係は実装関係、すなわちクラス実装インタフェースです.実装の動作は継承に似ているが,キーワードが異なるだけでimplementsを実装する.他のクラス(実装クラス)がインタフェースを実装すると、「このインタフェースの機能を備えるべきだ」と宣言することになります.実装クラスは、特定の機能を実装するためにメソッドを書き換える必要があります.フォーマット:classクラスimplementsインタフェース{書き換えインタフェースのメソッド}クラスがインタフェースを実装すると、クラスはインタフェースの抽象メソッドを継承し、このクラスは抽象メソッドを書き換え、具体的な論理を完了する必要があります.インタフェースに定義された機能は、その機能が必要な場合、クラスにそのインタフェースを実現させることができ、その方法を備えるべきであり、機能の宣言であることを宣言しただけである.具体的な実現クラスで方法を書き換え、機能を実現することは、方法の具体的な実現である.そこで,以上の2つの動作により機能の宣言と実現を分離した.△このとき、クラスは現実的なものの記述であり、インタフェースは機能の集合であることを改めて考えてください.1.4インタフェースのメンバーの特徴1、インタフェースでは変数を定義できますが、変数には固定的な修飾子修飾が必要です.public static finalなので、インタフェースの変数も定数と呼ばれ、その値は変更できません.後でstaticとfinalキーワード2、インタフェースで定義できる方法について説明します.方法には固定された修飾子もあり、public abstract 3、インタフェースではオブジェクトを作成できません.4、サブクラスはインタフェース内のすべての抽象メソッドを上書きしてから、サブクラスをインスタンス化することができます.そうでない場合、サブクラスは抽象クラスです.
interface Demo{///Demoという名前のインタフェースを定義します.public static final int NUM=3;//NUMの値はpublic abstract void show 1();public abstract void show 2();}
//サブクラスがインタフェースを上書きする方法を定義します.クラスとインタフェースの関係は実装です.キーワードimplements class DemoImpl implements Demo{//サブクラスでDemoインタフェースを実現する//インタフェースを書き換える方法.public void show 1(){}public void show 2(){}}1.5インタフェースのマルチインプリメンテーションインタフェースの特徴を理解した後、なぜインタフェースを定義し、抽象クラス記述を使っても問題ないのかを考えてみましょう.インタフェースはいったい何の役に立つのでしょうか.インタフェースの最も重要な体現:多継承の弊害を解決する.マルチ継承というメカニズムをjavaでマルチインプリメンテーションにより完成した.interface Fu1 { void show1(); }
interface Fu2 { void show2(); } class Zi implements Fu 1,Fu 2//マルチインプリメンテーション.複数のインタフェースを同時に実現します.{public void show 1(){}public void show 2(){}}多継承の弊害をどのように解決しますか?弊害:マルチ継承の場合、複数の親に同じ機能がある場合、サブクラス呼び出しに不確実性が発生します.実はコアの原因は、親クラスの機能に主体があることを多く継承し、実行を呼び出すと、どの主体の内容が実行されるか分からないことです.なぜ多く実現すれば解決できるのか.インタフェースの機能にメソッドがないので,サブクラスで明確にする.1.6クラス継承クラスインタフェースとクラス間の関係を実現するとともに、クラスとクラス間の関係を継承することによって生成することができることを学習した.クラスが親クラスを継承している場合、追加の機能を拡張する必要がある場合、インタフェースが役立ちます.子クラスは親拡張機能を継承することによって、拡張機能を継承することによって、子クラスが備えるべき基礎機能である.サブクラスが他のクラスの機能を拡張し続けたい場合は?このときインタフェースを実装することで完了する.class Fu { public void show(){} } interface Inter { pulbic abstract void show1(); } class Zi extends Fu implements Inter{public void show 1(){}}インタフェースの出現は単一継承の限界を回避した.親クラスで定義された物事の基本機能.インタフェースで定義された物事の拡張機能.1.7インタフェースのマルチ継承学習クラスの場合、クラスとクラスの間に継承によって関係を生成することができ、インタフェースとクラスの間に実現によって関係を生成することができ、インタフェースとインタフェースの間にどのような関係があるかを知る.複数のインタフェース間でextendsを使用して継承できます.interface Fu1{ void show(); } interface Fu2{ void show1(); } interface Fu3{ void show2(); } interface Zi extends Fu1,Fu2,Fu3{ void show3(); } 開発では,複数のインタフェースに同じメソッドが存在する場合,これらのインタフェースを実装するクラスがある場合,インタフェース内のメソッドを実装する.インタフェース内のメソッドは抽象メソッドであるため,サブクラス実装後も呼び出しの不確実性は発生しない.1.8インタフェースの思想の前にインタフェースのコードの体現を学び、今インタフェースの思想を学び、次に生活の中の例から説明する.例:コンピュータには多くのソケットが残っていることを知っていますが、これらのソケットは対応するデバイスを挿入することができます.これらのデバイスはなぜ上に挿入することができますか.主な原因は、これらの設備が生産時にこのソケットの使用規則に合致しているためであり、そうしないとインタフェースに挿入できず、さらに使用できないためである.このソケットの出現を発見して、私たちはもっと多くの設備を使用します.まとめ:インタフェースの開発におけるメリット1、インタフェースの出現は機能を拡張した.2、インタフェースは実は漏れ出したルールです.3、インタフェースの出現は結合性を低下させ、すなわち設備と設備の間でデカップリングを実現した.
インタフェースの出現は後期の使用とメンテナンスを便利にし、一方はインタフェース(コンピュータなど)を使用し、一方はインタフェース(ソケットに挿入された設備)を実現する.たとえば、ノートパソコンはこのルール(インタフェース)を使用して、コンピュータの周辺機器はこのルール(インタフェース)を実現します.
1.9インタフェースと抽象の違いインタフェースの思想とインタフェースの使い方を理解した後、インタフェースと抽象類の違いは何ですか?インタフェースは生活の体現も基本的に掌握して、それではプログラムの中でインタフェースはどのように体現しますか?抽象クラスとインタフェースの使い方をインスタンスで分析し、コードで実証します.1、例:犬:行為:ほえる;食事をする麻薬取締り犬:行為:ほえる;食事をする麻薬取締り
2、思考:犬は多くの種類に分けられているため、彼らの吠え方は食事の仕方とは異なり、説明する際に具体化できない.つまり、吠え方と食事の行為は明確ではない.行為を記述する場合,行為の具体的な動作が明確でない場合,この行為を抽象行為と書くことができ,このクラス,すなわち抽象クラスである.しかし、麻薬取締り犬に他の追加機能がある場合、この機能はこの事物のシステムにはありません.この場合、麻薬取締り犬に犬科自身の特徴を持たせるとともに、他の追加機能も備えられ、この追加機能をインタフェースに定義することができる.interface麻薬取締り{public abstract void麻薬取締り();}//犬科を定義するこの注意喚起の共通機能abstract class犬科{public abstract void食事();public abstract void吼え();}//麻薬取締り犬は犬科の一種で、犬科を継承させ、取得した犬科の特性を継承させる.//麻薬取締り犬は麻薬取締り機能を持っているため、麻薬取締りインターフェースを実現すればよい.これにより、麻薬取締り犬が犬科の特性を備え、麻薬取締り機能も持っている.class麻薬取締り犬extends犬科implements麻薬取締り{
public void  () {
}
void  () {
}
void  () {
}

}class麻薬取締り豚implements麻薬取締り{public void麻薬取締り(){}
3、上記の例を通してインタフェースと抽象クラスの違いをまとめます:同じ点:すべて継承の先端に位置して、他のクラスに実現されたり継承されたりするために使用されます;オブジェクトを直接インスタンス化することはできない;すべて抽象方法を含み、そのサブクラスはこれらの抽象方法を上書きしなければならない.区別:抽象類は一部の方法に実現を提供し、サブクラスがこれらの方法を繰り返し実現することを避け、コードの再利用性を高める;インタフェースには抽象的な方法しか含まれません.1つのクラスは1つの直接親クラス(抽象クラスかもしれない)しか継承できないが、複数のインタフェースを実現できる.(インタフェースはJavaの単一継承を補いました)抽象類はこの事物の中で備えるべきあなたの内容で、継承体系は1種のisです..a関系インタフェースはこの事物の中の余分な内容で、継承体系は1种のlikeです..a関係
両者の選択:インタフェースを優先的に選択し、できるだけ抽象類を使わない;サブクラスの行為を定義する必要があり、またサブクラスに共通の機能を提供する場合、抽象クラスを選択する.