python---核心知識12之物件導向三大特性補充
多型的概念:所謂多型,在我們日常生活中有很多體現,比如說動物都有吃東西的行為,但是豬吃東西和雞吃東西是不是不一樣,這兩個類別同屬於一個動物類,但是各自對於同一行為的表現形式不一樣,這其實就是多型;在程式碼裡面其實就是在繼承的前提下,不同的子類去呼叫父類同一個方法,產生不同的結果,這就是多型
python中的多型;python語言是屬於動態語言,也就是duck鴨子語言。只要一個物件,會游泳,會走,會叫,那就可以把它當成鴨子處理,關注點在於物件的行為和屬性,而非物件的型別,所以在python中,沒有真正意義上的多型,也不需要多型;因為不用多型這種機制就可以實現出多型這種結果,所以python並不需要多型;
所以其實在python裡面的物件導向,其實;最終只有兩大特性,就是封裝和繼承;最後我們再來補充兩個概念,就是抽象類以及抽象方法;
抽象類:就是對普通類的一種抽象;比如說小貓,小狗這兩個類,他們都有叫的動作,吃的動作,那我們就可以抽象出一個動物類;這個動物類就是抽象類,動物類具有叫,吃的動作,但是每種動物的具體動作也是不一樣的,我們就把吃,叫這兩種動作也抽象出來,這樣的方法就叫做抽象方法,並且所有的子類必須實現抽象方法;
通過下面的程式碼我們可以看出,抽象類和抽象方法需要匯入abc模組,抽象類需要設定它的元類為abc.ABCMeta,抽象方法或者抽象屬性也要加裝飾器;
最後我們在寫一個物件導向的例子:有三個類:貓,狗都有姓名,年齡的屬性;貓狗有吃睡玩同樣的動作,貓有抓老鼠特殊的工作技能,狗有看家的特殊技能,然後人有寵物這個特殊屬性,可以讓所有的寵物玩和工作,這就是大概的需求,下面貼出程式碼:
程式碼裡面都寫有註釋啥的,就不詳細介紹了;
相關文章
- python---之物件導向selfPython物件
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- golang 物件導向特性Golang物件
- 物件導向 -- 三大特性之繼承物件繼承
- 物件導向 -- 三大特性之封裝物件封裝
- [.net 物件導向程式設計基礎] (12) 物件導向三大特性——繼承物件程式設計繼承
- 【Java基礎知識】物件導向有哪些特性Java物件
- 物件導向有哪些特性物件
- 初識物件導向物件
- Java中物件導向三大特性之繼承Java物件繼承
- PHP物件導向深入研究之【高階特性】PHP物件
- Java物件導向03——三大特性之繼承Java物件繼承
- Java物件導向三大特性Java物件
- 08 ### 物件導向三大特性物件
- 【Kotlin】初識Kotlin之物件導向Kotlin物件
- 物件導向小知識物件
- 物件導向 -- 三大特性之多型物件多型
- Python物件導向三大特性Python物件
- C++物件導向三大特性C++物件
- 12 物件導向基礎-1物件
- python 初識物件導向Python物件
- php物件導向知識點PHP物件
- 物件導向-物件導向思想物件
- 【讀】JavaScript之物件導向JavaScript物件
- PHP物件導向之&引用PHP物件
- 二、Java之物件導向Java物件
- 物件導向之繼承物件繼承
- 2.1.1 Python物件導向三大特性Python物件
- java基礎 - 物件導向三大特性Java物件
- 第十八章 物件導向的特性物件
- [.net 物件導向程式設計基礎] (13) 物件導向三大特性——多型物件程式設計多型
- [.net 物件導向程式設計基礎] (11) 物件導向三大特性——封裝物件程式設計封裝
- iOS 開發之 OOA (物件導向分析) & OOD (物件導向設計)& OOP (物件導向程式設計)iOS物件OOP程式設計
- Python - 物件導向程式設計 - 三大特性之繼承Python物件程式設計繼承
- 2.1.0 Python初識物件導向Python物件
- day09_認識物件導向物件
- 《JavaScript物件導向精要》之六:物件模式JavaScript物件模式
- 11-物件導向-2-三大特性物件