python-抽象クラス

抽象クラス

インターフェイス:インターフェイスを指し、独自の方法関数を呼び出すためにユーザーが利用できる自分自身\方法\エントリー

インターフェイスクラスのグループに共通する機能を抽出するために、我々はセットの関数としてのインターフェースを入れ、その後、関数インタフェースを実装する子クラスを聞かせすることができます。

これは、正規化、正規化されている限り、クラスが実装されているのと同じインターフェースに基づいてそれの使用から、使用時に発生するこれらのクラスの全てのオブジェクトは、すべて同じ

抽象クラス:抽象クラスの特別なクラスである、唯一継承することができ、それに特殊ですが、インスタンス化することはできません

コンテンツクラスがパイルから同じ被験者から抽出される場合、抽象クラスは、プロパティ特性及び方法を含む、同じコンテンツクラスの山から抽出されます

実装の観点からは、ことを除いて、抽象クラスの一般的なカテゴリ:抽象クラスの抽象メソッドのみ(機能を実現しない)、クラスを継承することができ、インスタンス化することはできない、とサブクラスが抽象メソッドを実装する必要がありますこの点は、インタフェースと少し似ているが、実際に異なっています

Pyの中に抽象クラス、必要なガイドモジュールABC

抽象クラスを定義します。

import abc #利用abc模块实现抽象类
class obj_name(metaclass = abc.ABCMeta):
    @abc.abstractmethod
    def func(self):
        pass

プレゼンテーションの例:

#一切皆文件
import abc #利用abc模块实现抽象类

class All_file(metaclass=abc.ABCMeta):
    all_type='file'
    @abc.abstractmethod #定义抽象方法,无需实现功能
    def read(self):
        '子类必须定义读功能'
        pass

    @abc.abstractmethod #定义抽象方法,无需实现功能
    def write(self):
        '子类必须定义写功能'
        pass

# class Txt(All_file):
#     pass
#
# t1=Txt() #报错,子类没有定义抽象方法

class Txt(All_file): #子类继承抽象类,但是必须定义read和write方法
    def read(self):
        print('文本数据的读取方法')

    def write(self):
        print('文本数据的读取方法')

class Sata(All_file): #子类继承抽象类,但是必须定义read和write方法
    def read(self):
        print('硬盘数据的读取方法')

    def write(self):
        print('硬盘数据的读取方法')

class Process(All_file): #子类继承抽象类,但是必须定义read和write方法
    def read(self):
        print('进程数据的读取方法')

    def write(self):
        print('进程数据的读取方法')

wenbenwenjian=Txt()
yingpanwenjian=Sata()
jinchengwenjian=Process()

#这样大家都是被归一化了,也就是一切皆文件的思想
wenbenwenjian.read()
yingpanwenjian.write()
jinchengwenjian.read()
  • エッセンス(例えば、読み取り)機能属性(例えばall_type)メソッドおよび属性を含むクラスのセットの類似度を参照し、抽象クラスであります
  • インターフェイスは、唯一の方法属性の類似性を強調しました。
  • 正規化設計を実現するために使用することができるいくつかの機能のクラスとインタフェースと共に抽象クラスは、クラスとインタフェースとの間に介在する概念であります

おすすめ

転載: www.cnblogs.com/liuxu2019/p/12115908.html