Python教程:抽象類與歸一化

繼承的兩種用途:java

1.繼承基類的方法,而且作出本身的改變或者擴展(代碼複用)python

2.聲明某個子類兼容於某基類,定義一個接口類Interface,接口類中定義了一些接口名(就是函數名)且並未實現函數

接口的功能,子類繼承接口類,而且實現接口中的功能。學習

1、什麼是抽象類設計

與java同樣,python也有抽象類的概念,可是須要藉助模塊實現。抽象類是一個特殊的類,它的特殊之處在於只code

能被繼承,不能被實例化。對象

抽象類與普通類的不一樣之處在於:抽象類中只能有抽象方法(沒有實現功能),該類不能被實例化,只能被繼承,繼承

且子類必須實現抽象方法。接口

2、什麼是接口權限控制

接口能夠理解爲本身給使用者來調用本身功能方法的入口。

3、爲何要用接口

(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('硬盤數據的讀取方法')

4、抽象類與接口

抽象類的本質仍是類,指的是一組類的類似性,包括數據屬性(如all_type)和函數屬性(如read、write),而接口只強調函數屬性的類似性。

抽象類是一個介於類和接口直接的一個概念,同時具有類和接口的部分特性,能夠用來實現歸一化設計

5、接口與歸一化設計

歸一化讓使用者無需關心對象的類是什麼,只須要知道這些對象都具有某些功能就能夠了,這極大地下降了使用

者的使用難度。

歸一化使得高層的外部使用者能夠不加區分的處理全部接口兼容的對象集合。

相關文章
相關標籤/搜索