zoukankan      html  css  js  c++  java
  • 类的多继承

    1、一个子类可以由多个父类继承得到

    2、子类继承父类时,在子类构造时,要注意次序

    3、子类构造中如果存在和父类同名的构造方法,则优先执行

    4、子类中没有父类同名的参数和构造方法,则执行父类中的方法(属性)

    ex:

     1 class People(object):#新式类的写法,推荐使用
     2     def __init__(self,name,age):
     3         self.name=name
     4         self.age=age
     5     def eat(self):
     6         print("%s在享受美食"%self.name)
     7     def talk(self):
     8         print("%s在作诗"%self.name)
     9     def sleep(self):
    10         print("%s在睡觉"%self.name)
    11 
    12 class Communication(object):
    13     #定义一个Communication父类
    14     def meet(self,obj):
    15         print("%s找%s交流诗词" %(self.name,obj.name))
    16 
    17 class Man(People,Communication):#多继承,People,Communication
    18     #定义了一个子类男人
    19     def __init__(self,name,age,beard):
    20         #People.__init__(self,name,age)#继承了父类People,当多继承时比较麻烦
    21         super(Man,self).__init__(name,age)#当父类改变名字时,不用改了,推荐写法
    22         self.beard=beard
    23     def grow_beard(self):
    24         print("%s%s岁的胡子%s厘米长"%(self.name,self.age,self.beard))
    25     def sleep(self):
    26         #People.sleep(self)#通过父类,重构的方法,经典写法
    27         super(Man,self).sleep(self)#新式类的写法
    28         print("男人在休息")
    29 
    30 class Woman(People,Communication):#多继承,People,Communication
    31     #定义一个子类女人
    32     def get_birth(self):
    33         print("%s在生孩子"%self.name)
    34 w1=Woman("蔡文姬",32)
    35 m1=Man("李白",32,5)
    36 m1.meet(w1)#多继承的结果
    37 w1.meet(m1)#多继承的结果
    View Code
     
  • 相关阅读:
    datasnap 2010 为DataSnap系统服务程序添加描述
    uLanguage.pas
    cxgrid上如何取FOOTER上合计的值
    cxgrid经典用法
    datasnap 2010 DataSnap服务端和客户端发布分发方法
    php_network_getaddresses: getaddrinfo failed 原因
    查看crontab运行状态
    laravel 开启定时任务需要操作
    解决cron不执行的问题
    UPdate语句
  • 原文地址:https://www.cnblogs.com/pythonkids/p/7745689.html
Copyright © 2011-2022 走看看