• class多态


    多态代码实现:

    class Animal(object):
    def __init__(self, name): # Constructor of the class
    self.name = name

    def talk(self): # Abstract method, defined by convention only
    print('the is Animal talk function')
    pass #raise NotImplementedError("Subclass must implement abstract method")

    # @staticmethod #不写@staticmethod obj 就是self,就不是一个需要传递的参数
    def animal_talk(obj):
    obj.talk()

    class Cat(Animal):
    def talk(self):
    print('Meow!')


    class Dog():
    def talk(self):
    print('Woof! Woof!')


    d = Dog()
    #d.talk()

    c = Cat("xu")
    #c.talk()
    #
    # def animal_talk(obj):
    # obj.talk()

    #同一个接口,不同的实现
    Animal.animal_talk(c)  #调用对象c中的talk()
    Animal.animal_talk(d)  #调用对象d中的talk()

    X = Animal('alex') #X是 Animal类的实例化对象
    Z = Animal #Z 是Animal类的内存地址
    print(X)
    print(Z)

    # X.animal_talk(c)
    Animal('alex').animal_talk() #调用自己的方法,self 不用写
    X.animal_talk() #调用自己的方法,self 不用写
    Z.animal_talk(c)

    # Animal('alex1').animal_talk(c) #@staticmethod 这行不注释,这行才不报错

    面向对象的特性:封装、继承、多态;

    多态:
    多态是面向对象的重要特性,简单点说:“一个接口,多种实现”;就是同一个方法调用不同对象,结果不一样。

    封装:
    封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

    继承:
    一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承;继承可以扩展已存在的代码模块(类);

    参考:
    https://www.cnblogs.com/alex3714/articles/5188179.html
  • 相关阅读:
    网络编程
    mysql
    python 基础
    vim 操作
    linux 基本命令
    基本库使用(urllib,requests)
    震撼功能:逐浪CMS全面支持PWA移动生成意指未来
    硬件能力与智能AI-Zoomla!逐浪CMS2 x3.9.2正式发布
    从送外卖到建站售主机还有共享自行车说起-2017年8月江西IDC排行榜与发展报告
    HTTP协议知多少-关于http1.x、http2、SPDY的相关知识
  • 原文地址:https://www.cnblogs.com/lighthouse/p/9645444.html
Copyright © 2020-2023  润新知