本系列預計先介紹物件導向(以下簡稱OO)的基本概念,然後依OO的三或四大支柱:(Abstraction), Encapsulation, Inheritance, and Polymorphism,說明Python如何以其語言哲學來實作這幾個OO核心概念。如行有餘力,將試圖比較Python和其他OO程式語言(C++, Java, C#等)在OO實作上的異同。
內容分配:
OO基本概念介紹:約1-2篇
Abstraction $ Encapsulation: 約10篇
Inheritance: 約8篇
Polymorphism: 約8篇
結論:約2-3篇
今天真正要講的是overriding。但在進入主題之前,先做點熱身運動: 淺談Overloading 物件導向程式設計領域有兩個文字相似而意義不同的術語:o...
「老豆」,粵俚,老爸也。 今天談的就是John Doe(張三)一個人有幾個老爸的問題。在物件導向程式設計世界,這叫「多重繼承」(Multiple Inher...
今天談談多重繼承的優缺點。 上篇最後的情境-7,以super().show_breed()呼叫父類別的方法,結果每一個類別的方法只會呼叫一次: 先跑Tim...
今天要談的ABC不是American Born Chinese的'ABC',而是Python的一個模組:abstract base classes,以及其背後的...
今天續奏昨天的未盡琴音: 還記得上篇的abstract classes抽象類別的定義嗎?類別中只要有一個抽象方法,該類別就是抽象類別。 和抽象類別相對...
今天是繼承的最後一篇,介紹另一個在物件導向程式語言常常討論的議題:繼承和組合之比(或之爭)。 物件導向領域的繼承機制,父子類別間的關係,常會用「子類別is...
講polymorphism多型,大多數是從「拆字算命」(還好不用紫微斗數)起頭。吾從眾: 名詞解釋 polymorphism一詞,是poly和morphi...
今天補充昨天一些未交代細節。 「多型」Polymorphism架構圖 下面是筆者的手繪圖示。很簡陋,但勉強能說明多型的大致架構和分類: 請記住:本章所談的...
今天試寫Python的多型。 Python就不必管甚麼「形式型別」和「實際型別」了 前兩篇以C#為例介紹執行時期(run-time)多型。其中一大重點是「形...
最後一天旅程。今天前半段分享程式如何利用Polymorphism技術「重構」,後半段則是總結和心得報告。 程式中如有多重if's或case's判斷物件,可考慮...