2:オブジェクト指向の継承

    今日では、コンテンツ
1、OOPのの三つの特徴
カプセル化、継承、ポリモーフィズム
1、オブジェクト指向の継承
1「の継承は何の関係オブジェクト間の関係について説明している
例:直接使用することができ、Bの連続をB既存の方法との特性
と呼ばれるサブクラス、Bは、親クラスと呼ばれ、また、ベース・クラスと呼ばれる
「なぜ継承を使用する:2の
目的は、再利用性向上のために、既存のコードを再利用することである
3」方法利用継承:
文法クラスのクラス名(親クラスの名前):
クラスの内容
PS:サブクラスがpythonで同時に複数の親クラスを継承することができます
4「抽象の連続
抽象的:、特定の不明確、漠然としていないが、見ていません理解
抽象クラス:同じサブクラスの複数の部分、抽出、新しいクラスを形成し、また、抽象化のプロセスとして知られるプロセス
正しい使用継承:
最初の抽象継承1.
2.拡張したり、元の関数の変更、既存のクラスを継承した
:属性の順序検索:psの
親を検索する> - - >親クラスの親が- >オブジェクト>クラス-オブジェクト自身を
5「が導き出されます
サブクラスの異なる内容で親クラスが存在する場合に、このサブクラスは、派生クラスと呼ばれる
派生クラスがサブクラスを参照するように、
一般的に、サブクラスは、いくつかの新しいコードを記述します、と親クラスとまったく同じにすることはできません両方は、通常、クラス派生している

6「カバー
も書き換えオーバーライドと呼ばれる
サブクラスは親クラスのプロパティやメソッドとまったく同じ名前が登場するとき
は、既存のクラスを継承し、あなたが親をカバーする場合:PSをinitメソッドは、ときに
必要なパラメータ親*****を渡し、初期化方法の最初の行の親クラス初期化メソッドを呼び出す必要があります

7「組成
二つの物体の間に記述されているもの、また、関係であります関係とは何ですか
別のオブジェクトの属性としてオブジェクト、(何をどのような両方)

の組み合わせの目的で:
また、既存のコードを再利用するため
、継承を使用している場合:最後に2つのクラス間の関係の分析ではありません。関係は何ですか
使用した場合組成物は、2つのクラス間の差は有意な関係がない場合は、同じに属していない
、追加の成分比較連続結合の程度が低い
8「ダイヤモンド継承
多重継承Pythonのサポートを
1に、新しいクラスが:クラスは、任意の直接ののpython3ことですかオブジェクトが間接的に継承する
新しいクラスを、明示的または暗黙的なオブジェクトは、新しいクラスへのクラスから継承し、呼び出された
すべての新しいクラスでのpython3する
2、古典的な、どちらもObjectのサブクラスのみpython2の中に表示されます

PS :ダイヤモンドの継承、新しいクラス、第1の深さがある場合に幅の上の共通の親クラスに直面したとき、

古典的な、深さ優先であります

主な例:
クラスの親:
テキスト= 'ABC'

@classmethodの
DEFのsay_something(セルフ):
印刷( '何か')


クラスのSub(親):
DEF show_info(自己):
。#モード1つの
印刷(スーパー(サブ、セルフ)の.text )
スーパー(サブ、セルフ).say_something()
#2、最も一般的なアクセス方法
を印刷(スーパー()。テキスト)
スーパー()。say_something()
第三のアプローチ(知っています)
プリント(Parent.text)
Parent.say_something(自己)
#サブサブ=()
#1 sub.show_info()

プリント(Parent.text)
P =親()
P1 = Parent.say_something()
プリント(P1、ID(P1 ))
要約:サブクラスコンテンツアクセス親クラスの

構文:

`` `Pythonの
モード1:
スーパー(現在のクラス名、自己)あなたは親クラスのプロパティやメソッドを転送する。
モード2:
スーパー()調整したいです。親クラスのプロパティやメソッド
の実施例3:
。チューン(セルフ)にしたい親クラスのプロパティやメソッドのクラス名
#3の方法は、継承とは何の関係もありません
:ケースと呼ばれる
クラスパーソン:
DEF __int __(自己、名前、年齢、性別):
self.name =名前
self.age =年齢
self.gender =性別の

DEFのAA(セルフ):
印刷( 'aa.run')

DEF say_hi(セルフ):
印刷( '名:%S、年齢:%S、性別:S%' %(self.name、 self.age、self.gender))


クラスの学生(人):

DEF __init __(自己、名前、年齢、性別、ナンバー):
スーパー().__ int型__(名前、年齢、性別)
self.number =数

DEF say_hi(自己):
スーパー()say_hi()。
印刷( '番号:%s'は%self.number)



#1のp =学生( '222 」、 '21'、 ''、 'XXX W')
#1 p.say_hi()
P =学生( '222'、 '21'、 'XXX'、 'W')
p.aa()

组合实例:クラス電話:
デフ__init __(自己、価格、種類、色):
self.price =価格
自己。種類=種類
self.color =色

DEF(セルフ)を呼び出します。
印刷( '4人の5少女のためのコール!')

メッセージ(自己)DEF:
印刷( 'SMSを送信')


クラスの学生:

DEF __init __(自己、名前、年齢、電話番号):
self.name名前=
self.age =年齢
self.phone電話=

DEFのsh_info(セルフ):
印刷( '名:%S、年齢:S%' %(self.name、self.age))


電話=電話番号(10000、「アップル'' W3「)
STU1 =学生( "バラ"、 "男性"、携帯電話)
stu1.phone.call()
stu1.sh_info()

おすすめ

転載: www.cnblogs.com/Fzhiyuan/p/11247390.html