JAvaステップ2——継承&抽象クラス&funal

3838 ワード

継承
継承の概要
2つのクラスがextendsキーワードで関係を確立し、一般的にこの関係と呼ばれる双方を親クラスと子クラスと呼ぶ.
継承されたフォーマット
class    extends    {}

継承の特徴
1.javaでは単一継承のみがサポートされており、1つのサブクラスには1つの親しかいませんが、多層継承が可能で、1人の子供には1人の父親しかいませんが、おじいさん、曽おじいさんなどがいます.JAvaでは複数のサブクラスが1つの親を継承することをサポートし、1人の父親が複数の子供を持っていることに相当します.
継承中のメンバー変数の特徴
  • サブクラスは、親非プライベートメンバーの子親クラスのメンバー変数の名前が異なる場合にのみ取得できます.親クラスのメンバー変数の子親クラスのメンバー変数の名前が同じ場合に取得されます.子クラスのメンバー変数
  • です.
  • 近接原則:誰が私に近いか、私は誰が局所変数があれば局所変数を使用します.局所変数がなければ、サブクラスのメンバー変数があれば、サブクラスのメンバー変数を使用します.局所変数とサブクラスのメンバー変数がなければ、親クラスのメンバー変数があれば、親クラスのメンバー変数を使用します.
  • super:親クラスのメンバー変数とメンバーメソッドを取得できます.
    継承中のメンバーメソッドの特徴&メソッド書き換え
  • サブクラスにこのメソッドがない場合、親の
  • が呼び出されます.
  • サブクラスにこの方法がある場合、サブクラスの , ( , , ),
  • を呼び出す.
    メソッド書き換えの適用シーン&注意事項
  • 子クラスが継承するメソッドが子クラスのニーズを満たすことができない場合、メソッドを用いて書き換えると、親クラスの機能(踏襲、伝承)を保持することもできるし、独自の機能を持つこともできる
  • .
  • メソッド書き換えの注意事項:親プライベートのメンバーメソッドを書き換えることはできません.親プライベートのメンバー
  • は根本的に見えません.
  • 注記@Override:メソッド書き換え、親を書き換えるメソッド
  • を説明します.
    継承中の構築メソッドの実行順序
         ,      ,         ,
                                          ,           
    
              ?
                   
                  ,              
  • super(実パラメータリスト);文は、親クラスの構造メソッド(伝達パラメータによって決定されるもの)を呼び出すために子クラスの構造メソッドで使用され、
  • this(実参リスト);文はクラスの構築方法で使用され、本クラスの他の構築方法(伝達パラメータによって決定されるもの)を呼び出すために使用され、
  • superとthisの違い
    super:サブクラスで親クラスを呼び出すメソッドまたはメンバー変数this:クラスで独自のメソッドまたはメンバー変数を呼び出す
    長所と短所を受け継ぐ.
  • の利点は、複数のクラスの共通のコードを1つのクラスに抽出することができ、これらのクラスがこの抽出されたクラスを継承するようにし、コードを簡略化し、メンテナンス性を向上させる
  • である.
  • の欠点はクラスとクラスの間の結合性を増加し、javaのプログラミング思想(高集約、低結合)の集約に合わない:自分であることを完成する能力の結合である:クラスとクラスの関係
  • 匿名オブジェクト&final
    匿名オブジェクト定義&使用
    匿名オブジェクト、すなわち無名オブジェクトnewキーワードを直接使用してオブジェクトを作成
  • 匿名オブジェクトの適用シーン:メソッドが1回だけ呼び出されたときに匿名オブジェクトをパラメータとして渡すことができるが、パラメータを渡す前に他のことをすることはできない
  • .
  • 匿名オブジェクトは、メンバー変数を呼び出して値を割り当てることができますが、値を割り当てることは意味しません.
  • finalキーワード
    はjavaの修飾子で、メンバー変数、メンバーメソッド、クラスを修飾します.
  • 特徴:final : , final : final修飾変数:定数となり、変更されず、
  • を初期化しなければならない
    abstract
    abstractの概要
    Javaのキーワードの1つで、クラスと方法を修飾するために使用することができて、abstractに修飾されたクラスを抽象クラスと呼んで、abstractに修飾された方法を抽象方法と言います
  • 抽象クラス:abstractで修飾されたクラスで、オブジェクトをインスタンス化できず、継承可能、
  • 抽象メソッド:abstractによって修飾されたメソッドは、抽象クラスに存在し、1つのクラスに抽象メソッドが含まれている場合、このクラスは抽象クラスでなければならないが、抽象クラスには抽象メソッドがなくてもよい、
  • 抽象クラスの特徴
    1.abstractで修飾するクラス2.抽象メソッドは抽象クラスにのみ存在する.クラスには抽象的な方法がなくてもよい.抽象クラスはインスタンス化できません. , , , , , .クラスが抽象クラスを継承する必要がある場合は、親クラスのすべての抽象メソッドを書き換えるか、このサブクラスが抽象クラスでなければなりません.
    抽象クラスのメンバーの特徴
  • メンバー変数メンバー変数定数
  • メンバーメソッドは、抽象メソッドがあっても非抽象メソッドがあってもよい
  • 構造方法()には、
  • 構造方法がある.
    抽象クラスの詳細
  • 抽象クラスキーワードabstractはどのキーワードと共存できませんか?1.private:プライベートメソッドサブクラスは継承できないし、上書きも存在しないが、abstractはprivateと一緒に修飾メソッドを使用し、abstractはサブクラスでこのメソッドを実現しなければならないが、private修飾サブクラスは親を得ることができない.互いに矛盾する.2.final:抽象クラスはfinalと共存できない.抽象クラス自体はオブジェクトを作成できないため、サブクラスを通じてオブジェクトを作成する必要がある.抽象クラスがfinalキーワードを使用すると、抽象クラスはサブクラス抽象方法がなくfinalと共存できない.抽象メソッドの後期には布団クラスの書き換えが必要であり、finalを加えると書き換えることができないからだ.static:抽象メソッドはstaticキーワードと共存できない.staticを加えるとクラス名で抽象メソッドに直接アクセスできるからだ.抽象メソッドにはメソッド体がなく、意味がないため、
  • は許されない.
  • 抽象クラスで抽象メソッドを定義しなくてもいいですか?いいですよ.では、この抽象類の存在にはいったい何の意味があるのでしょうか.このクラスにオブジェクトを作成させないで、直接サブクラスに
  • を使用させることができます.
  • 抽象クラスには構造関数がありますか?はい、抽象クラスの構造関数は、サブクラスのsuper文によって呼び出され、抽象クラスのメンバーを
  • 初期化するために使用されます.
    継承クラスと抽象クラスのまとめ