Python面向对象学习小结之三 继承

Posted peterhuang1977

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python面向对象学习小结之三 继承相关的知识,希望对你有一定的参考价值。

继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类

 

python中类的继承分为:单继承和多继承

 

class ParentClass1: #定义父类

  pass

class ParentClass2: #定义父类

  pass

class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass

  pass

class SubClass2(ParentClass1,ParentClass2): #python支持多继承,用逗号分隔开多个继承的类

   pass

class Animal:

‘‘‘ 人和狗都是动物,所以创造一个Animal基类 ‘‘‘

   def __init__(self, name, aggressivity, life_value):

  self.name = name # 人和狗都有自己的昵称;

  self.aggressivity = aggressivity

   # 人和狗都有自己的攻击力;

   self.life_value = life_value  

  # 人和狗都有自己的生命值;

  def eat(self):

    print(‘%s is eating‘%self.name)

class Dog(Animal):

  pass

class Person(Animal):

  pass

egg = Person(‘egon‘,10,1000)

ha2 = Dog(‘二愣子‘,50,1000)

egg.eat()

ha2.eat()

派生的概念:

当然子类也可以添加自己新的属性或者在自己这里重新定义这些属性(不会影响到父类),需要注意的是,一旦重新定义了自己的属性且与父类重名,那么调用新增的属性时,就以自己为准了。

在子类中,新建的重名的函数属性,在编辑函数内功能的时候,有可能需要重用父类中重名的那个函数功能,应该是用调用普通函数的方式,即:类名.func(),此时就与调用普通函数无异了,因此即便是self参数也要为其传值.

在python3中,子类执行父类的方法也可以直接用super方法.

>>> class Teacher:
... def __init__(self,name,gender):
... self.name=name
... self.gender=gender
... def teach(self):
... print(‘teaching‘)
...
>>>
>>> class Professor(Teacher):
... pass
...
>>> p1=Professor(‘egon‘,‘male‘)
>>> p1.teach()















以上是关于Python面向对象学习小结之三 继承的主要内容,如果未能解决你的问题,请参考以下文章

面向对象进阶小结

面向对象的三大特征之三——多态

Java面向对象一(封装 继承 多态 类 对象 方法)

Python学习笔记-面向对象进阶封装多态继承

js面向对象小结(工厂模式,构造函数,原型方法,继承)

Python学习第二天:面向对象之继承