抽象類和抽象方法_第1頁
抽象類和抽象方法_第2頁
抽象類和抽象方法_第3頁
抽象類和抽象方法_第4頁
抽象類和抽象方法_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《Python開發技術應用》52抽象類和抽象方法什么是抽象類類是通過對象抽象而來,抽象類是對普通類的進一步抽象。字符串"Securety"類對象抽象數據類型抽象類抽象紅軍戰士趙章成類對象抽象軍人抽象類抽象

抽象類接口抽象類是一種用于定義規范的手段,在一些其他面向對象的語言中,完全、徹底的抽象類叫做接口(Interface)。就如同現實中的接口——220V電源接口、USB即插即用接口、RJ45網線接口等等,用戶眼中的接口是絕緣體和導體構成的插頭和插口,而程序員眼中的接口應該是這些插口、插口背后的規范。和普通類不同,抽象類中的方法是抽象方法,只有定義,沒有實現,這些方法將會由子類(實現類)去實現。站在實現類的角度,抽象類中的抽象方法就是需要遵守的規范。抽象類的概念進一步降低了程序的耦合性,多用于協作開發時,由不同的人在不同的類中實現接口中的各個方法。繼承基本概念抽象類的定義要定義抽象類,需要使用abc模塊中的ABCMeta工具類和@abstractmethod裝飾器。前者用于將一個類定義為抽象類,后者用于在抽象類中定義抽象方法。有以下規則必須遵守:當一個類被定義為抽象類之后,不能在類體中實現任何方法,所有被定義的方法均只能以pass語句進行占位;抽象類中的方法可以用@abstractmethod裝飾為抽象方法,但不是必須的;被@abstractmethod裝飾的方法,在子類中必須被實現;未被@abstractmethod裝飾的方法,在子類中不強制要求實現。抽象類的定義importabc#abc是abstractclassbaseclass的縮寫classStudent(metaclass=abc.ABCMeta):#指定當前類為抽象類(所有方法不允許有實現)@abc.abstractmethod#將下一行定義的方法指定為抽象方法defsetName(self):passdefsetAge(self):#因為沒有指定@abc.abstractmethod,它不是抽象方法pass

classSeniorStudent(Student):defsetName(self,name):=namemetaclass默認為type,指定為abc.ABCMeta則表示該類是抽象類。Student被定義為抽象類,而Student.setName()被指定為抽象方法。雖然Student.setAge()不是抽象方法,但由于所屬的類是抽象類,因此也不允許被實現。對于Student的子類,必須實現setName()方法,但不必實現setAge(),因為后者在父類中不是抽象方法。抽象類的定義抽象類GeometricFi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論