知识点在代码注释里都有写,不再过多 解释。
#先定义一个父类 class Car: def __init__(self,speed,color): #定义实例属性,必须要借用内置的实例方法init self.speed = speed #通过传入参数来定义实例属性 self.color = color def driver(self): #实例方法 print('i can drive') def showSpeed(self): #实例方法 print(self.speed) def changColor(self,color): #实例方法 print('我原来是'+self.color,end='') #调用实例属性self.color self.color = color #如果给color赋值,那self.color也会随之改变 print(',我现在是'+self.color) #在定义子类,继承父类(如果需要可继承所有的方法) class BMW(Car): #BMW继承Car的,Car是父类 def addoil(self): #BMW自己也写了一个函数 print('BMW is adding oil') #调用:成功继承父类的所有方法 bmw = BMW(300,'红色') #类实例化为对象,自动调用父类的init方法,参数300和红色 传入到父类init方法里 bmw.driver() #i can drive bmw.showSpeed() #就是传入的300 bmw.changColor('粉色') #我原来是红色(上面参数传入的),现在是粉色 bmw.addoil() 注意:如果子类也定义了和父类相同的属性和方法,那就调用子类的,就近原则.即子类重写。(爸爸有钱我没有,就用爸爸的;爸爸有钱我也有,就用我自己的)
#子类初始化,没有按照父类那样传入参数,有关参数的方法就不能调用,基本上是自己跟自己玩
class XP(Car): #继承父类
def __init__(self): #子类自定义了实例化方法
self.price = 50000000
xiaopeng = XP() #子类初始化,没有按照父类那样传入参数,有关参数的方法就不能调用,基本上是自己跟自己玩
xiaopeng.driver()
xiaopeng.changColor() #调用失败,或报错!color是需要传入参数的!在初始化的时候加上参数才继承父类成功