面向對象三大特征
繼承
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()