受け継ぎます
組み合わせ
OOPの三つの特徴のひとつ:カプセル化、継承、ポリモーフィズム
受け継ぎます
何を継承していますか?
#の継承とは何の関係が何であるかを説明している2つのオブジェクト間の関係であり、 マクダル、ペイジは、ちょうどたてがみ豚、朱です:例 #プログラムでは、クラスとクラス間の継承関係を記述する たとえば:Bが既存のメソッドとプロパティで直接使用することができ、Bの連続は、のサブクラスと呼ばれ、Bは親クラスと呼ばれ、また、基本クラスと呼ばれます
なぜあなたは、継承を使用する必要がありますか?
#継承党は党を継承し、直接使用されるいくつかのものがあることができる 再利用性を向上してきた既存のコードを再利用するために設計されています
どのように継承を使用するには?
構文:
クラスのクラス名(親クラスの名前): クラスの内容 #、Pythonでサブクラスは、同時に複数の親クラスを継承することができます
継承の適切な使用:
#第一連続抽象1 #2は、元の機能の連続既存のクラス、拡張または修正た 取付:抽象について #は特にないが、非常に曖昧な、明確ではないが、読み取り #同じ部分にサブカテゴリの複数、抽出、新しいクラスを形成し、また、抽象化のプロセスとして知られるプロセス 正しい使用継承。
物件検索順序:
クラスA: テキスト = " 笑" クラスB(A): テキスト = " heihei " 合格 B = B() b.text = " 西渓" 印刷(b.text)
#オブジェクト自身- >クラス- >取得親- >親クラスの親- >オブジェクト
継承関連用語:
#の導出: 親クラスのサブクラスは異なるコンテンツに表示されたら、それは派生クラスと呼ばれるこのサブクラスは 両方とも通常は、通常、サブクラスは、いくつかの新しいコードを記述しますされ、そして親は正確に同じにすることはできません派生クラスは、派生クラスは、サブクラスを参照 #のカバー: また、書き換えオーバーライドとして知られている サブクラスは親クラスのプロパティやメソッドとまったく同じ名前が登場するとき
演習:
制限要素は、容器の種類を実装することができる(辞書、リスト、タプル、設定、文字列)
サブクラスは親クラスのコンテンツにアクセスするには:
構文:
モード1: スーパー(現在のクラス名、自己)あなたは親クラスのプロパティやメソッドを転送する。 モード2: スーパー()あなたは親クラスのプロパティやメソッドを転送する。 モード3: クラス名調整したいです。親クラス(自己)のプロパティまたはメソッド #1 にかかわらず継承3の方法
彼は再び強調強調しました:
#既存のクラスを継承し、あなたが親クラスのinitメソッドをオーバーライドするときは、必要なパラメータの親クラスに渡して、初期化メソッドの最初の行の親クラスの初期化メソッドを呼び出す必要があります
組み合わせ
#は、2つのオブジェクト間の関係で何が何であるかを説明し、また関係は 、ゲームのキャラクターは、いくつかの機器持って、例えば、学生が携帯電話を持っているが (両方とも何をどのような)別のオブジェクトのプロパティなどのオブジェクトを、
組み合わせの目的:
#はまた、既存のコードを再利用するため 、継承を使用している場合:二つのクラス間の関係を分析し、最終的にはありません:どのような関係は何である の組み合わせを使用するときは、次の2つのクラスの間には有意な関係が存在しない場合は、同じに属さない ほか比較組み合わせ承継、結合度が低いです
ポイントの知識
##ダイヤモンドの継承
#まず明確なPythonのサポート多重継承は、 追加:新しいスタイルのクラスとクラシックを 任意のクラスをのpython3に直接的または間接的に継承されているオブジェクト のpython3の新しいクラス、新しいクラスを呼び出すためにオブジェクトから継承明示的または暗黙的なクラス、すべての新しいカテゴリの 古典は、Objectのサブクラスでもない、唯一python2の中に表示される #ダイヤモンドの継承がある場合に、の幅に共通の親クラスに直面して新しいクラス、第1の深さ、 新しいカテゴリは、深さ優先であります
#概要:
1 。継承とは何か 2 。なぜ継承 3を構文 4 連続して。まず抽象 6 派生 7をカバー 8を。スーパーサブクラスプロパティやメソッドを(親クラスにアクセスするため)。名前 は、既存のクラスを継承している場合あなたが最初のinitは親クラスのinitカバー呼び出す必要があります 9 。継承の原則、のMROリスト 10 、新しいクラスと古典的な 11 。ダイヤモンドの継承を理解し 、12を順に属性検索