最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

python青少年编程第三季——08、OOP:面向对象编程之继承

Python 少儿编程 2147浏览 0评论
Python青少年编程第三季

友情提示:380元/半年,儿童学编程,就上码丁实验室

各位小伙伴大家好:

说到面向对象编程OOP

(Object Oriented Programming),

就不得不谈它的三个基本特征:封装继承多态

 

本期我们就一起来了解一下继承的相关特性,首先来看一段代码

 

python青少年编程第三季——08、OOP:面向对象编程之继承

 

这是我们前面学过的知识:定义一个类,包含有初始化方法实例方法。之后实例化一个对象,然后调用它的实例方法,输出相关提示内容。

 

第一期我们说过面向对象编程是对现实世界所做的抽象,那么类的继承又是怎么回事呢?

 

比如,上面我们定义了一个Animal类,这个Animal类就是含有相同属性的事物的抽象,比如都能动,有生命,会死亡等。

 

但如果把人和鸟归于同一个类就显得有点牵强了,所以我们就可以在此基础上继续进行细分。

 

而从Animal类的基础上细分出来的类,如:Dog,就叫Animal的子类,而Animal则称为Dog类的父类

 

父类中的属性比如:会动、有生命等,子类可以直接使用而不需要再重新定义,这是的继承的作用。

 

废话了一大堆,百闻不如一见,下面来看个例子。

 

python青少年编程第三季——08、OOP:面向对象编程之继承

 

上图的代码中,我们在Animal类的下面,重新定义了一个Cat类。只是在定义的时候比以前我们定义的Cat多了一个参数(Animal),这就Python中继承的语法,表示Cat继承Animal类。

 

然而在新定义的Cat类中,我们并没有写任何东西。但是从上图的代码中我们看到,使用Cat实例化的kiti对象直接调用了walk方法,而且正常输出了。

 

这里的walk方法我们在Cat类中并没有写,那么它是从哪里来的呢?答案就是:继承自父类:Animal。

 

另外,提醒大家注意一点的是:如果我们在实例化kiti的时候,后面不加参数10,则会报错。

 

这也是因为在Cat类没有定义初始化方法,但是父类Animal中有定义,所以系统默认调用了父类的初始化方法。

 

而父类的初始化方法是需要一个参数的,如果我们在实例化的时候没有传递这个参数,则会像下图这样报错,提示缺少一个参数。

 

python青少年编程第三季——08、OOP:面向对象编程之继承

正如一个父亲还可以有多个孩子一样,父类也可以被多个子类继承:

 

python青少年编程第三季——08、OOP:面向对象编程之继承

 

在上图的代码中,多个子类继承了同一个父类——Cat和Dog都继承了Animal,所有子类都通过继承获得了父类的方法和属性。

 

而每个子类又可以拥有各自的专属方法,如Cat中的mew和Dog中的bark,这与现实世界一致。

 

有关Python中类的继承的特性,本期就简单和大家分享到这里,我们下期继续。

 

欢迎扫描下方的二维码入群和我交流

  python青少年编程第三季——08、OOP:面向对象编程之继承

转自公众号:
高维数学

您必须 登录 才能发表评论!