Python 类的继承

当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类、父类或超类(Base class、Super class)。

1: 子类继承了父类的所有功能,即方法和属性

2: 当子类中方法和属性同父类中一样时,子类会覆盖父类的方法和属性。但不会影响父类的方法和属性,仍然可以通过父类的实例调用父类。

3: 由于第二点的说明,当子类和父类同样都有__init__方法时,子类只会调用自己的,但是如果子类没有__init__方法时,就会调用父类的__init__方法.

4: Python支持多重继承

classParent1(object):

Parent1_Name ="jim"

def__init__(self):

print("This is Parent1 class.")

defprint_parent1(self):

print("Parent name=",self.Parent1_Name)

classParent2(object):

Parent2_Name ="della"

def__init__(self):

print("This is Parent2 class.")

defprint_parent2(self):

print("Parent name=",self.Parent2_Name)

#定义子类,有两个父类

classChild(Parent1,Parent2):

Child_Name ="Kevin"

#定义同名属性,在子类中调用的话,就会覆盖该属性。

Parent2_Name ="kevin"

def__init__(self):

print("this is child")

@classmethod

defparent_count(cls):

# __bases__类属性输出,它是一个包含其父类的结合的元祖。

print(cls.__bases__)

#定义三级子类

classGrandChild(Child):

GrandChild_Name ="grand"

#没有定义自己的__init__方法,就会调用父类的__init__方法

@classmethod

defprint_GrandChild(cls):

#调用多级父类的属性和方法

print(cls.Parent1_Name)

print(cls.Child_Name)

if__name__ =="__main__":

t1= Child()

'''

子类继承了父类所有的功能,所以可以直接使用父类的方法和属性,当子类的方法和属性,同父类一致时,覆盖父类的方法和属性

'''

t1.print_parent1()

print(t1.Parent2_Name)

t2=GrandChild()

t2.print_GrandChild()

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180803G189CZ00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券