2020-12-22

封装

类的封装可以隐藏类的实现细节,迫使用户只能通过方法去访问数据,这样就可以增强程序的安全性。接下来演示未使用封装可能出现的问题,如例所示。
在这里插入图片描述
在例中,运行结果输出的成绩为-68,在程序中不会有任何问题,但在现实生活中明显是不合理的。为了避免这种不合理的情况,就需要用到封装,即不让使用者随意修改类的内部属性。
在定义类时,可以将属性定义为私有属性,这样外界就不能随意修改。Pyt
hon中通过在属性名前加两个下画线来表明私有属性,如例所示。
在这里插入图片描述
在例中,self.name为公有属性,self.__score为私有属性。第8行试图修改私有属性的值。从程序运行结果可看出,私有属性的值并没有发生变化。
当属性设置为私有属性后,经常需要提供设置或获取属性值的两个方法供外界使用,如例所示。
在这里插入图片描述
此外,私有属性在类外不能直接访问,但程序在测试或调试环境中,可以通过“对象名._类名”的方式在类外访问,如例所示。
在这里插入图片描述

单一继承

接下来演示如何定义单一继承,如例所示。
在这里插入图片描述
如果派生类的构造函数中需要添加参数,则可以在派生类的构造方法中调用基类的构造方法,如例所示。
在这里插入图片描述
在例中,第10行通过super()方法调用基类的构造方法,该行也可以写成如下两行中的任意一种形式,具体如下所示:
在这里插入图片描述
如果派生类定义的属性和方法与基类的属性和方法同名,则派生类实例对象调用派生类中定义的属性和方法,如例所示。
在这里插入图片描述
另外,需特别注意,基类的私有属性和方法是不会被派生类继承的。因此,派生类不能访问基类的私有成员,如例所示。
在这里插入图片描述
多重继承指派生类可以同时继承多个基类,其语法格式如下:
在这里插入图片描述

多重继承

接下来演示如何定义多重继承,如例所示。
在这里插入图片描述
在多重继承中,如果基类存在同名的方法,Python按照继承顺序从左到右在基类中搜索方法,如例所示。
在这里插入图片描述
如果将上例中第13行代码中Student与Staff交换位置,具体如下所示:
在这里插入图片描述
再次运行程序,则运行结果如图所示。
在这里插入图片描述

多态

Python中加法运算符可以作用于两个整数,也可以作用于字符串,具体如下所示:
在这里插入图片描述
上述代码中,加法运算符对于不同类型对象执行不同的操作,这就是多态。在程序中,多态是指基类的同一个方法在不同派生类对象中具有不同的表现和行为,当调用该方法时,程序会根据对象选择合适的方法,如例所示。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值