Python

状课网-少儿编程网课专业平台

Python python青少年编程—OOP:面向对象编程之继承

发布时间:2021-11-23 17:07:30 浏览 0

各位小伙伴大家好:

说到面向对象编程OOP

(Object Oriented Programming),

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

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

python青少年编程—OOP:面向对象编程之继承

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

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

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

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

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

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

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

python青少年编程—OOP:面向对象编程之继承

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

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

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

另外,

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

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

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

python青少年编程—OOP:面向对象编程之继承

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

python青少年编程—OOP:面向对象编程之继承

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

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

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

 

 

文章来源:创客编程小屋

本文链接:https://www.ascratch.com/news/17524.html

上一篇:python青少年编程—油量报警程序升级版之__str__() 下一篇:返回列表
相关推荐 更多