Python 多重继承
接下来,我们准备为大家介绍"多重继承"
多重继承——可以给一个“子类”继承多个“父类”,这样的继承称为多重继承,而继承后的子类,可以使用所继承的父类中的公有属性与方法,但不可以使用父类中的私有属性与方法。
多重继承的定义格式:
class 子类名字(父类1,父类2,...父类n):
类的主体代码
格式分析:
(1)以class关键字开头
(2)子类名字
(3)一对小括号
(4)将要继承的父类名字,各父类之间通过逗号分隔,父类必须已经定义
(5)一个冒号
(6)类中的代码
其实,与继承的语法格相似,只是小括中可以写入多个不同的父类名字。
接下来,我们结合例子作进一步的学习
例子:
#========================
#定义了一个描述手枪的类Gun
#========================
class Gun :
x = 0;
def Gshoot( self ): #定义了方法Gshoot
self.x = self.x + 1
def __Boom( self ): #定义了私有方法__Boom
pow = 1000
return pow
#========================
#定义了一个描述散弹枪的类ShotGun
#========================
class ShotGun :
x = 0
y = 0
__BulletX = 0
def SGshoot( self ): #定义了方法SGshoot
self.x = self.x + 1;
self.y = self.y + 1;
#========================
#定义了一个描述角色类Role,并继承了手枪类与散弹枪类
#========================
class Role( ShotGun,Gun ):
rx = 10 #角色的位置X
ry = 10 #角色的位置Y
r1 = Role() #定义了r1对象
r1.rx = 10 #调用Role类自身的属性RX并设置为10
r1.ry = 20 #调用Role类自身的属性RY并设置为20
r1.Gshoot() #调用了父类Gun中公有方法Gshoot
r1.SGshoot() #调用了父类ShotGun中公有方法SGshoot
r1.__BulletX #错误,不可以调用父类ShotGun中的私有属性__BulletX
r1.__Boom() #错误,不可以调用父类Gun中的私有方法__Boom
非常好,现在,我们已经掌握了Python中的“多重继承”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)