多型多型クラス

多型

物事のクラスの様々な形,,(抽象クラ​​スの複数のサブクラス、したがって、多型継承の概念に依存します):多型を指し、

州立ここより1.1

  1. 文字列、リスト、タプル:フォームの配列データのいくつかの種類があります。

  2. ヒト、イヌ、ブタ:動物の様々な形態があります。

  3. 多型は、(一般的に、結合、他の言語での強い結合している)は、結合していて

    • 第1幕
    class Animal:
        def speak(self):
            pass
    
    class Pig(Animal):
        def speak(self):
            print("哼哼哼")
    class Dog(Animal):
        def speak(self):
            print("汪汪汪")
    class People(Animal):
        def speak(self):
            print("say hello")
    
    • 第2幕
    #用abc实现接口的统一化,约束代码(用的比较少)
    import abc
    #1 在父类括号内中写metaclass=abc.ABCMeta
    class Animal(metaclass=abc.ABCMeta):
        #2第二在要约束的方法上,写@abc.abstractmethod
    
        @abc.abstractmethod
        def speak(self):
            pass
    
    class Pig(Animal):
        # def aaa(self):
        #     print('哈哈哈')
        # 如果子类中没有speak方法,就会报错
        def speak(self):
            print('哼哼哼')
    pig = Pig()
    • 法III

      #用异常处理来实现
      class Animal():
          def speak(self):
              # 主动抛出异常
              raise Exception('必须要重写哦')
      class Pig(Animal):
          #如果没有会报错
          def speak(self):
              print('哼哼哼')
      
      pig = Pig()
    • アヒルのカテゴリ:長い(オブジェクトがバインドメソッドを持っている)アヒルのように歩き、あなたはアヒルです

      class Pig:
          def speak(self):
              print('哼哼哼')
      class People:
          def speak(self):
              print('哈哈哈')
      pig = Pig()
      people = People()
      def animal_speak(obj):
          obj.speak()
      animal_speak(pig)
      animal_speak(people)

第二に、多型

多型は次のとおりです。あなたが関数名の異なるコンテンツと機能を呼び出すことができるように、異なる機能を持つ関数は、同じ関数名を使用することができます。オブジェクト指向のアプローチでは、一般的に、多型表される:別のオブジェクトに同じメッセージを送信し、異なるオブジェクトは、異なる挙動(すなわち、メソッド)を受信した場合に有するであろう。つまり、各オブジェクトは、共通のメッセージに応答するためにあなたの方法にすることができます。いわゆるニュースは関数を呼び出すで、異なる挙動が異なる機能を実行する異なる実装を指します。

  1. 多型:種々の異なる形態を反映
  2. 継承:ポリモーフィズムはに依存します
  3. 多型:統一されたインタフェースの定義
class Animal:
    def speak(self):
        pass

class Pig(Animal):
    def speak(self):
        print("哼哼哼")
class Dog(Animal):
    def speak(self):
        print("汪汪汪")
class People(Animal):
    def speak(self):
        print("say hello")

pig = Pig()
dog = Dog()
people = People()


def animal_speak(obj):
    obj.speak()
animal_speak(pig)
animal_speak(dog)
animal_speak(people)
#

哼哼哼
汪汪汪
say hello

2.1利点多型

  1. プログラムの柔軟性を増加させる:かかわらず、刻々と変化する対象ユーザの、現状を維持するようFUNC(動物)として、呼び出す形の同じ種類であります
  2. プログラムのスケーラビリティの量を増やします。新しいクラスを継承して作成された動物のクラスは、ユーザーがあなたのコードを変更する必要がある、またはFUNC(動物)を使用していない呼び出すために

多型3でのLinuxの多型

  • 伝統的な言葉遣い
class File:
    def read(self):
        pass
    def write(self):
        pass
#内存类
class Memory(File):
    def read(self):
        print("Memory....read")
    def write(self):
        print('Memory.....write')
  • 文言のアヒルタイプ

    class Memory:
        def read(self):
            print("Memory....read")
        def write(self):
            print('Memory.....write')
    
    class Network:
        def read(self):
            print("Memory....read")
        def write(self):
            print('Memory.....write')

IVの概要

多状態:フォームの同じ種々のものは、動物は、ヒト、ブタ(定義された角度)に分けた
一種類が呼び出されると、異なる効果(多型)の実装:多型

おすすめ

転載: www.cnblogs.com/SkyOceanchen/p/11425933.html