Python 抽象基類及@abstractmethod

https://zhuanlan.zhihu.com/p/360144699

抽象基類,也是類,需要使用class關(guān)鍵字進行定義,它與普通類不同之處有兩點:

  1. 抽象基類不能被實例化,只能被繼承
  2. 子類必須實現(xiàn)抽象基類里定義的抽象方法,否則不能被實例化

抽象基類,抽象方法,是一種編程規(guī)范,抽象基類最大的作用在于它可以協(xié)同開發(fā),約束開發(fā),提高代碼的可讀性。

抽象基類,為模塊之間的調(diào)用提供了清晰的接口。在實現(xiàn)具體功能前,我們可以先編寫抽象基類,由于抽象方法無需在抽象基類里實現(xiàn),我們可以將目光重點關(guān)注在如何與其他模塊交互上,抽象出子類必須實現(xiàn)的方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 有時,我們抽象出一個基類,知道要有哪些方法,但只是抽象方法,并不實現(xiàn)功能,只能繼承,而不能被實例化,但子類必須要實...
    小猿圈加加閱讀 638評論 0 0
  • 使用 abc 模塊可以很輕松的定義抽象基類: from abc import ABCMeta, abstractm...
    SkTj閱讀 1,708評論 0 2
  • 首先,我感覺這篇文章最重要的應(yīng)該是不同點的第二條,抽象類和接口的設(shè)計目的,為什么不同,而不是下面這些細枝末節(jié)的細節(jié)...
    DrunkPian0閱讀 270評論 0 0
  • Java 基礎(chǔ) 語言特性 優(yōu)點 ① 平臺無關(guān),擺脫硬件束縛,"一次編寫,到處運行"。 ② 安全的內(nèi)存管理和訪問機制...
    續(xù)袁閱讀 697評論 0 1
  • Java 與 C++ 的區(qū)別 Java 是純粹的面向?qū)ο笳Z言,所有的對象都繼承自 java.lang.Object...
    senzx閱讀 386評論 0 0

友情鏈接更多精彩內(nèi)容