Javaの基礎15(抽象クラス、インタフェース)

抽象クラス

我々はいくつかのサブクラスを使用して、抽出親クラスにこれらの同じ動作を使用することができ、同じ動作で発見された定義がある問題これらは唯一の働き具象サブクラスによって実装されるが、親クラスでは、ないということです基本的なロジックに沿って、我々は一般化することはできませんので、この機能の具体的な実現の中で親クラスにすることはできません、重く、その機能についての話に抽象関数として定義され、彼らはサブクラスを実装する方法の機能を身体の特定の機能を持つことができません決定書。次に、抽象関数に基づいて、抽象クラスと呼ばれます

抽象クラスの機能を定義する場合も抽象的なキーワードを変更する必要があり、キーワードの変更抽象クラスは抽象クラスです。

抽象クラスの特徴

  1. 抽象クラスと抽象メソッドが抽象的に変更する必要があります。抽象メソッドは抽象クラスで定義する必要があります。
  2. 抽象メソッド意味をなさない呼び出しますので、抽象クラスは、オブジェクトを作成することはできません。
  3. のみすべての抽象メソッドをサブクラスがインスタンス化することができるという抽象クラスをカバーしています。それ以外の場合は、サブクラスや抽象クラス。
  4. 完全に抽象化機能を書き換えていない場合は、抽象クラスからサブクラスの継承は、このクラスは抽象的でなければならない場合には
  5. 継承は、より多くのように考えで、操作の一般的なタイプの顔に単純になる理由

スプレッド

  • 抽象クラスは、父である必要がありますか?それは常に描かれているので、はい、それは来ます。
  • 抽象クラスは、抽象関数でなければなりませんか?することはできませんが、これは存在の意味は、単に抽象クラスは、オブジェクトを作成するクラスを維持することですされています。
  • 抽象クラスは、コンストラクタを持っていますか?そこ彼らのオブジェクトの初期化にかかわらず、ではなく、オブジェクトのサブクラスに初期化することができます。

抽象クラスの類似点と一般的なクラスとの違い:

  1. 同じ:

    它们都是用来描述事物的
    它们之间都可以定义属性和行为
    
  2. 異なります:

    一般类可以具体的描述事物,抽象类描述事物的信息不具体
    抽象类中可以多定义一个成员:抽象函数
    一般类可以创建对象,抽象类不能创建对象
    

キーワードアブストラクト抽象化は、それらのキーワードと共存することはできません

  1. 最終:最終修正クラスは継承できませんし、修正抽象クラスをサブクラスを持っていなければならないとき。最終的な修正方法をカバーすることができず、抽象メソッドは、サブクラスによって実装されるように修正されなければなりません
  2. 静的:静的メソッドは、変更のクラスに属し、それはエリア内の静的メソッドである、とオブジェクト間の関係がない、と抽象メソッドは、クラス名を通じて呼び出さ、何のメソッド本体を持っていない、それは意味がありません
  3. プライベート:プライベートメソッドを継承することができない、何のカバレッジは矛盾し、このメソッドを実装するための抽象サブクラス、および民間の修正に、サブクラスは親クラスのメソッドを取得することはできません、一緒に抽象的でプライベート修正方法ながら、ありませんでした

インターフェース

インターフェースの起源
抽象の完全な抽象クラスのメソッドは、この抽象クラスはインターフェイスを発現するために使用することができる場合には、インタフェースは、特別な抽象クラスです。

インタフェースの定義
定義されたクラスを、または通常のクラス抽象クラスは、キーワードを使用することができ、キーワードインターフェースは、完了すなわち、インターフェース・クラスに置き換え、クラスとインタフェースとの間のこの時間を実現することができる関連するインターフェイスを定義し、この時点でインターフェースはできません見てクラスとして

interface class Demo
{
        abstract void show1();
        abstract void show2();
}

インタフェースの機能のメンバー

  1. インターフェイスは、変数を定義することができますが、固定変数修飾子は、のpublic static final変数がそう定数と呼ばれるインターフェース変更している必要があります。
  2. インターフェースはメソッドを定義することができ、方法は修飾子、パブリック抽象を修正しました
  3. インターフェイスのメンバーが公開されています。
  4. インターフェイスは、オブジェクトを作成することはできません。
  5. サブクラスは、すべての抽象メソッドは、サブクラスをインスタンス化することができるインターフェイスをオーバーライドする必要があります。それ以外の場合は、サブクラスは抽象クラスであります

インターフェイスは多重継承の欠点解消
多重継承の欠点を次の場合、複数の継承、複数の親クラスが同じ機能を持っている場合、サブクラスの呼び出しは不確実性を作成します。実際には、コアの理由は、無期限に実行するボディコンテンツ(曖昧な)本体、呼出し動作と親クラスのその多重継承関数です。
このインターフェイスは、複数の継承メカニズムを超える、なぜ以上はそれを解決するために達成してJavaで行わ達成するために?
インターフェイスメソッドの身体機能がないので、サブクラスによってクリアします

インターフェース:1 ADDが中間転写タイプ2(仕様プロトコル)などの機能

1、より多くのクラスとインタフェースの関係より達成するために:より多くの機能クラスを支払うために、サブクラスが継承されている関係とインタフェース、クラスとクラスの間の関係を生成する必要があり、クラスとインタフェースとの間の関係が実現されます。キーワードを実装することで

図2に示すように、クラスの継承クラスが実装するインタフェース
サブクラス継承拡張によって親クラスは、継承によって拡張された機能は、サブクラスは、基本的な機能を有するべきである(いくつかの先験的)。あなたは他のクラスのサブクラスで、それの機能を拡張するために継続したい場合は?次いで、完全な(取得追加)インターフェースへのインターフェースを実装することにより、単一継承の制限の出現を回避します。親クラス定義の中で物事の基本的な機能。インタフェースで定義されているものの拡張。

図3に示すように、多重継承とのインターフェースは、
複数のインタフェースの間で使用することができる唯一の関数宣言は、特定の実装を指定しないまま、継承を拡張しないので、曖昧

クラスは、これらのインタフェースを実装する場合、インタフェースメソッドが抽象メソッドであるため、図4に示すように、複数のインターフェイスの開発場合と同様に、次に、インターフェース方法が実現され、サブクラスを達成しません呼び出しの不確実性

開発のインタフェースの利点

  1. これは、インターフェイスが表示されますの機能を拡張します。
  2. インターフェイスは、実際に暴力的なルールをエスケープされています。
  3. デバイスとデバイスとの間の分離を達成するために、すなわち、インターフェースを結合減少発生。
    インタフェースは、1つのインタフェース(コンピュータなど)インタフェース(ソケットに挿入された装置)の実装では、パーティを使用して、使用して、後者を維持することが容易に見えます。例えば:ノートブックは、このルール(Interface)を使用するために、コンピュータ周辺機器は、このルールを実装する(インタフェース)
抽象クラスとインタフェースとの間の差

同じポイント:

;それらは上部に、または継承のための他の実装で連続して配置されている
(オブジェクトを作成できません)インスタンス化できない。
これらの方法は、サブクラスがオーバーライドしなければならない抽象抽象メソッドを含みます。

違い:

抽象クラスは、コードの再利用を提供繰り返しサブクラスがこれらのメソッドを実装避けるために、方法の一部として実装;インターフェースは、抽象メソッドを含むことができる
クラス(抽象クラスであってもよい)を一度直接スーパークラスを継承することができ、それらは複数のインターフェイスを実装することができ(Javaインタフェースは、単一の継承を構成します)

どちらの選択:

優先インターフェイス抽象クラスの使用を最小限に抑えるために、
必要な行動はサブクラスを定義したとき、だけでなく、抽象クラス選択のサブクラスに共通の機能を提供するために、

公開された70元の記事 ウォン称賛56 ビュー1995

おすすめ

転載: blog.csdn.net/qq_43624033/article/details/103425054