1. 程式人生 > >二 面向對象三大特性

二 面向對象三大特性

代碼 重用 派生 多態性 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>,)

二 面向對象三大特性