二 面向對象三大特性
阿新 • • 發佈:2018-02-17
代碼 重用 派生 多態性 tcl pytho bsp 單繼承 pan
一 繼承與派生
一、繼承定義
二、繼承與抽象的關系
三、繼承與重用性
四、派生
五、組合與重用性
六、接口與歸一化設計
七、抽象類
八、繼承實現的原理
九、子類中調用父類的方法
二 多態與多態性
一、多態
二、多態性
三 封裝
一、封裝定義
二、特性(property)
三、封裝與擴展性
一 繼承與派生
一、繼承定義
什麽是繼承
繼承是一種創建新類的方式,新建的類可以繼承一個或多個父類(python支持多繼承),父類又可稱為基類或超類,新建的類稱為派生類或子類。
子類會“”遺傳”父類的屬性,從而解決代碼重用問題(比如練習7中Garen與Riven類有很多冗余的代碼)
python中類的繼承分為:單繼承和多繼承
1 class ParentClass1: #定義父類 2 pass 3 4 class ParentClass2: #定義父類 5 pass 6 7 class SubClass1(ParentClass1): #單繼承,基類是ParentClass1,派生類是SubClass 8 pass 9 10 class SubClass2(ParentClass1,ParentClass2): #python支持多繼承,用逗號分隔開多個繼承的類 11 pass
查看繼承
1 >>> SubClass1.__bases__ #__base__只查看從左到右繼承的第一個子類,__bases__則是查看所有繼承的父類 2 (<class ‘__main__.ParentClass1‘>,) 3 >>> SubClass2.__bases__ 4 (<class ‘__main__.ParentClass1‘>, <class ‘__main__.ParentClass2‘>)
經典類與新式類
1.只有在python2中才分新式類和經典類,python3中統一都是新式類2.在python2中,沒有顯式的繼承object類的類,以及該類的子類,都是經典類 3.在python2中,顯式地聲明繼承object的類,以及該類的子類,都是新式類 3.在python3中,無論是否繼承object,都默認繼承object,即python3中所有類均為新式類 #關於新式類與經典類的區別,我們稍後討論
提示:如果沒有指定基類,python的類會默認繼承object類,object是所有python類的基類,它提供了一些常見方法(如__str__)的實現。
1 >>> ParentClass1.__bases__ 2 (<class ‘object‘>,) 3 >>> ParentClass2.__bases__ 4 (<class ‘object‘>,)
二 面向對象三大特性