Python面向对象编程之继承

知识点在代码注释里都有写,不再过多  解释。

#先定义一个父类
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是需要传入参数的!在初始化的时候加上参数才继承父类成功

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值