zoukankan      html  css  js  c++  java
  • 多态与多态性

    一、多态

      多态性指的是同一种事物有多种形态,在python中,存在继承关系,父类的引用指向的是子类对象地址。

    二、多态性

      对象可以在不用考虑对象具体类型的前提下,而直接使用对象。

       优点:同一化,简化对象的使用。

       对于开发者:多态性可以提供一套模板(父类),在这个模板基础下,可以进行扩展(子类)

       对应使用者:无需考虑使用对象的具体类型

        简单版:

        python不需要提前声明数据类型,不易察觉,但有多态的这个概念,一个父类可以有多种子类的形态。

    class Animal:
        def speak(self):
            print('animal speak..')
    
    
    class People(Animal):
        def talk(self):
            print('谈话')
    
    
    class Dog(Animal):
        def wang(self):
            print('汪汪汪汪汪')
    
    
    class Pig(Animal):
        def chi(self):
            print('吃吃吃吃吃')
    
    an = Animal()
    an.speak()
    an = People()
    an.talk()

        抽象类的定义

        让子类必须重写父类的函数

        1..import abc

        2.在父类()中添加metaclass=abc.ABCMeta

        3.在父类要求的函数添加装饰器@abc.abstractmethod

        注意:

        1.抽象类不能实例化

        2.所有的子类必须实现抽象方法

        3.抽象方法不能调用其它函数

      

    import abc
    
    
    class Animal(metaclass=abc.ABCMeta):
        def ss(self):
            pass
    
        @abc.abstractmethod
        def speak(self):
            print('animal speak..')
    
        @abc.abstractmethod
        def run(self):
            print('Animal run..')
    
    
    class People(Animal):
        def talk(self):
            print('谈话')
    
        def speak(self):
            print('People speak..')
    
        def run(self):
            print('People run..')
    
    
    class Dog(Animal):
        def wang(self):
            print('汪汪汪汪汪')
    
        def speak(self):
            print('Dog speak..')
    
        def run(self):
            print('run run..')
    
    
    class Pig(Animal):
        def chi(self):
            print('吃吃吃吃吃')
    
        def speak(self):
            print('Pig speak..')
    
        def run(self):
            print('Pig run..')
  • 相关阅读:
    python__基础数据类型
    python基础之迭代器生成装饰器
    cat命令查看文件显示行号
    VM虚拟机安装ESD版Win10
    CentOS 8修改系统语言为中文且立即生效
    CentOS 8下yum安装LAMP环境
    完美解决CentOS8 yum安装AppStream报错,更新yum后无法makecache的问题
    鬼灭之刃高清电脑桌面壁纸
    记CentOS 8 yum 报AppStream Error排错
    CentOS 8 重启网卡命令
  • 原文地址:https://www.cnblogs.com/linbin7/p/11124568.html
Copyright © 2011-2022 走看看