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