Python面向对象(继承、重写与私有)

2021/5/2 20:27:38

本文主要是介绍Python面向对象(继承、重写与私有),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

类的继承

面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。

继承语法

     class  子类类名(父类1):
            类体
在这里插入图片描述在这里插入图片描述

Python支持多重继承,一个子类可以继承多个父类,继承语法如下:

     class  子类类名(父类1,父类2,…):
            类体

(一个子类从多个父类派生,而子类又没有自己的构造函数时按顺序继承,哪个父类在最前面且它又有自己的构造函数,就继承它的构造函数,如果最前面第一个父类没有构造函数,则继承第2个的构造函数,第2个没有的话,再往后找,以此类推。)

在这里插入图片描述
在这里插入图片描述
(不接受第二个父类构造方法中的grade)

继承
1、如果在子类中需要父类的构造方法就需要显式的调用父类的构造方法,或者不重写父类的构造方法。
在这里插入图片描述
在这里插入图片描述

2、在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。区别在于类中调用普通函数时并不需要带上 self 参数。

在这里插入图片描述
在这里插入图片描述

3、Python 总是首先查找对应类型的方法,如果它不能在派生类中找到对应的方法,它才开始到基类中逐个查找。(先在本类中查找调用的方法,找不到才去基类中找)。如果在继承元组中列了一个以上的类,那么它就被称作"多重继承" 。

类的方法重写

如果父类方法不能满足子类需求,那么我们就要在子类中重写父类中的方法。重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法。

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

类的私有属性和方法

类的私有属性:

通常我们约定,两个下划线开头的属性是私有属性(private),其他为公共(public),类内部可以访问私有属性,不能在类的外部被使用或直接访问。类外部可以通过"_类名_私有属性名"访问私有属性。
在这里插入图片描述
在这里插入图片描述
外部调用时:对象名._类名__私有属性名
在这里插入图片描述
在这里插入图片描述

类的私有方法:

私有方法与私有属性类似,方法本质上也是属性,只不过是可以通过()执行而已。
在这里插入图片描述
在这里插入图片描述
外部调用时:对象名._类名__私有方法名
在这里插入图片描述
在这里插入图片描述
单下划线、双下划线、头尾双下划线说明:

__foo__: 定义的是特殊方法,一般是系统定义名字 ,类似__init__() 之类的。

_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于。

__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。



这篇关于Python面向对象(继承、重写与私有)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程