带你轻松了解python类的多态 (~ ̄▽ ̄)~

分析了python中的一些基础的类的用法操作,发现在python中如果能熟练运用类的一系列操做,肯定可以提高我们代码的效率,现在就开始分享一下我对咱们类里面多态的理解,希望对大家对此方面知识的理解有帮助!!!

引入:

  •    多态不同的子类方法调用相同的父类方法,产生不同的执行结果
  •    可以继承和重写父类方法
  •    是调用方法的技巧,不会影响到类内部的设计

接下来让我们步入正题:

-------------------------------------------------------
 创建一个猪爸爸类,初始化一个猪猪们的名字,猪爸爸可以
在书房里安静的看书,也可以在沙发上听着猪之歌  
-------------------------------------------------------

class Pig_dad:

    def __init__(self, name):
        self.name = name

    def do(self):
        print('{}在家里的书房安静的看书'.format(self.name))

    def listen(self):
        print('{}跑到沙发上去,听着猪之歌'.format(self.name))

------------------------------------------------------------
创建一个猪爸爸的子类(这里不明白创建方法<点击下方链接查看>) 猪孩子
类,但是我们的猪孩子不喜欢看书,他喜欢和乔治玩,这时候我们就成功改写
了父类的方法,这样我么的猪孩子就可以做自己喜欢做的事啦!
------------------------------------------------------------

class Pig_child(Pig_dad):

    def do(self):
        print("{}在外面的草地上自由的奔跑,快乐的和乔治玩耍".format(self.name))



快速了解创建子类方法点这里https://blog.csdn.net/weixin_68418329/article/details/124364439

续上放代码!!!!!!!

---------------------------------------------------
   创建一个和猪爸爸平行的狗爸爸类狗爸爸喜欢和猪
猪类一起做游戏,我们初始化一个狗爸爸的名字   
---------------------------------------------------

class Dog_dad:

    def __init__(self, name):
        self.name = name

    def play(self, pig):

        print("{} 和 {} 在做游戏".format(self.name,pig.name))

        pig.do()

---------------------------------------------------
让我们来创建一只名叫佩奇猪宝宝和一只叫二哈的狗
爸爸 的实例对象
---------------------------------------------------

pig = Pig_child("佩奇")

dog = Dog_dad("二哈")

dog.play(pig)



>>> 二哈 和 佩奇 在做游戏 
#  print("{} 和 {} 在做游戏".format(self.name,pig.name)) 输出的是上面的内容
    
>>> 佩奇在外面的草地上自由的奔跑,快乐的和乔治玩耍
#  pig.do() 对应输出的是上面的内容 



----------------------------------------------------
让名叫大猪的猪爸爸 和 名叫汪汪的狗爸爸 一起玩耍 
----------------------------------------------------
dog = Dog_dad("汪汪")

pig = Pig_dad('大猪')

dog.play(pig)

>>> 汪汪 和 大猪 在做游戏
#  print("{} 和 {} 在做游戏".format(self.name,pig.name)) 输出的是上面的内容

>>> 大猪在家里的书房安静的看书
#  pig.do() 对应输出的是上面的内容 


 我们会发现我们的猪爸爸(大猪)是在书房里看书 并没有在子类里面完全改写





难点理解:

  • pig.name 输出的是我们实例化对象时传入的名称
  • pig.do 输出的是我们实例的父类或者子类的do方法

快来加入我们的python基础交流大家庭 讨论学习吧 

QQ交流群 : 463373916

你可能感兴趣的:(面向对象,类,多态,python)