前言:
作者简介:短尾巴小鳄鱼 ,一位不放弃自己的上进卷妹
💬 如果文章知识点有错误的地方,请留言指正~和大家一起学习,一起进步
💬 人生格言:昨日种种,皆成今我。今日种种,方成新我。切莫踌躇,莫停留,莫沉溺💬
如果感觉博主的文章还不错的话,还请关注、点赞、收藏三连支持一下博主哦
python类的继承与多态
继承
什么是继承?
通过继承基类来得到基类的功能
我们把被继承的类称作父类或基类,继承者被称作子类
继承的好处:代码可以重用
父类与子类的关系
- 子类拥有父类的所有属性和方法
- 父类不具备子类独有的属性和方法
定义子类时,将父类传入子类参数内
子类实例化对象可以调用自己与父类的属性与方法
父类实例化对象无法调用子类的属性与方法
例子:
多态
什么是多态?
同一个功能的多状态化。
比如一个父亲有多个儿子,虽然每个儿子都继承了父亲的基因,但每个儿子又各不相同,比如性格,说话的语气等。
多态的用法
子类中重写父类的方法:直接在子类重写一个相同名称的方法,子类的实例化对象在调用该方法时会调用子类的。
super函数
python子类继承父类的方法而使用的关键字,当子类继承父类后,就可以使用父类的方法
设想:子类和父类都有自己的构造函数,那么在实例化子类对象时会调用子类的构造函数,但又想使用父类的构造函数该怎么做呢?
举个例子:
要从下面两个类中提出父类,该如何提取呢?
参考代码:
class Animals(object):
def __init__(self, name, age):
self.name = name
self.age = age
class Person(Animals):
def __init__(self, sex, name, age):
super().__init__(name, age)
self.sex = sex
class Bird(Animals):
def __init__(self, kind, name, age):
super().__init__(name, age)
self.kind = kind
p = Person(sex='boy')
p.name = 'xiaoming'
print(p.name)
运行结果:
注意,在python2.0中,super()函数的括弧内需要传入两个参数:super(child,self)
第一个参数是当前类,第二个参数是self,在python3.0时代这两个参数可以省略。