繼承的兩種用途:
1.繼承基類的方法,并且做出自己的改變或者擴展(代碼復用)
2.宣告某個子類兼容于某基類,定義一個介面類Interface,介面類中定義了一些介面名(就是函式名)且并未實作
介面的功能,子類繼承介面類,并且實作介面中的功能,
一、什么是抽象類
與java一樣,python也有抽象類的概念,但是需要借助模塊實作,抽象類是一個特殊的類,它的特殊之處在于只
能被繼承,不能被實體化,
抽象類與普通類的不同之處在于:抽象類中只能有抽象方法(沒有實作功能),該類不能被實體化,只能被繼承,
且子類必須實作抽象方法,
二、什么是介面
介面可以理解為自己給使用者來呼叫自己功能方法的入口,
三、為什么要用介面
(1)可以實作權限控制,比如可以通過介面做一下訪問控制,可以允許或者拒絕呼叫者的一些操作,
(2)降低了使用者的使用難度,使用者只需要知道怎么呼叫即可,不需要知道里邊的具體實作方法,
#Python學習交流群:778463939
import abc
class Interface(metaclass=abc.ABCMeta):
# 定義介面Interface類來模仿介面的概念,python中沒有interface關鍵字來定義一個介面,
@abc.abstractmethod
def read(self): # 定介面函式read
pass
@abc.abstractmethod
def write(self): # 定義介面函式write
pass
class Txt(Interface): # 文本,具體實作read和write
def read(self):
print('文本資料的讀取方法')
def write(self):
print('文本資料的讀取方法')
class Sata(Interface): # 磁盤,具體實作read和write
def read(self):
print('硬碟資料的讀取方法')
def write(self):
print('硬碟資料的讀取方法')
四、抽象類與介面
抽象類的本質還是類,指的是一組類的相似性,包括資料屬性(如all_type)和函式屬性(如read、write),而介面只強調函式屬性的相似性,
抽象類是一個介于類和介面直接的一個概念,同時具備類和介面的部分特性,可以用來實作歸一化設計
五、介面與歸一化設計
歸一化讓使用者無需關心物件的類是什么,只需要知道這些物件都具備某些功能就可以了,這極大地降低了使用
者的使用難度,
歸一化使得高層的外部使用者可以不加區分的處理所有介面兼容的物件集合,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263659.html
標籤:Python
