python新手入門(六)

序列分裝了數據,函數封裝了代碼語句,類封裝了屬性和方法;類是對象的抽象,對象是類的實例化,python中萬物皆對象,我們將擁有共同特徵的對象歸爲一類,將他們的特點抽象成屬性,行爲動作抽象成方法。比如一個人類,屬性有膚色(color),身高(hight),體重(weight),行爲有游泳(swim),打籃球(basketball);

我們創建了一個人類,並創建p1和p2兩個人,他們都爲黃皮膚,170cm,80kg,p1在游泳,p2在打籃球;

人類了膚色,身高,體重不可能都是一樣的,各有各的差異;學過java的同學一定會想到構造函數,python的構造函數又是怎樣呢;

如圖中所示,我們對Person類進行了升級,有了自己的構造方法,可以隨意修改一個人的膚色,身高,體重了;

面向對象編程肯定會涉及到共有,私有屬性,python屬性默認爲共有,私有屬性只要在屬性名前加兩個下劃線__color,color就成爲了私有屬性;

雖然都是人,但人與人之間也有差異,比如中國人的特點是說漢語,美國人的特點是說英語,但無論如何都是人;類的繼承,中國人屬於人類的子類,人類就是中國人的父類,子類繼承父類的全部屬性和方法;

圖中兩個類Chinese和American都繼承了Person類,所以他們擁有了膚色,身高,體重的屬性,並擁有了游泳和打籃球的技能,同時他們有各自的特點,就是語言不同;

面向對象編程的特點就是封裝,繼承和多態;將屬性和方法封裝便成了一個類,一個類繼承自另一個類,子類擁有了父類的全部屬性和方法,就是繼承,子類可以對父類的屬性和方法進行擴展,即爲多態,而多態的實現分爲,重載和重寫;

圖中American重寫了父類的basketball()方法,將在“打籃球”改爲“喜歡打籃球”,又將basketball()方法重載,加入了name;

(重寫,重載是java中的概念)

多重繼承,一個子類可以繼承多個父類,中國人即屬於人類,也屬於動物類

p1及擁有Person中的swim()方法,同時也擁有Anamal中的eat()方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章