面向对象三大特征
继承
Python多继承,默认从左到右依次继承,使用,隔开
默认继承object类
#继承了object类,可以省略
class m:def eat(self):print('m')class m2(object):def eat(self):print('m')
继承的注意事项
class A(object):def foo(self):print('A')
class B(object):def foo(self):print('B')
class C(A,B):pass
c=C()
c.foo()
print(C.__mro__)
# A
# (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)
私有属性的继承特点
子类不能继承父类的私有属性和私有方法
方法的重写
is & isinstance & issubclass 的使用
练习-汽车类
#author:dq
#project:PythonProject
#date:2021年10月25日
#function:# 建立一个汽车类Auto,包括轮胎个数(wheel_count,默认为4)、汽车颜色(color)、车身重量(weight)、速度(speed,默认为0)等属性,并定义一个可以改变车速的方法。
# 至少要求汽车能够加速、减速、停车。
# 再定义一个小汽车类CarAuto,继承Auto,并添加空调(ac)、CD(cd)
# 属性,并且重新实现方法覆盖加速、减速的方法。
class Auto(object):wheel_count=4speed=0def __init__(self,wheel_count,color,weight,speed):self.wheel_count=wheel_countself.color=colorself.weight=weightself.speed=speeddef AddSpeed(self):self.speed+=1print('Auto')def SubSpeed(self):self.speed-=1print('Auto')def StopSpeed(self):self.speed=0print('Auto')class CarAuto(Auto):def __init__(self,wheel_count,color,weight,speed,ac,cd):super(CarAuto,self).__init__(wheel_count,color,weight,speed)self.ac=acself.cd=cddef AddSpeed(self):self.speed +=1print('CarAuto')def SubSpeed(self):self.speed -=1print('CarAuto')def StopSpeed(self):self.speed = 0print('CarAuto')c=CarAuto(4,'red',8,10,'rain','zjl')
c.AddSpeed()
c.SubSpeed()
c.StopSpeed()