Python之类和对象【三】---继承(2.0-重写和覆盖概念,完全覆盖,保留父类方法覆盖super()关键字 )

文章目录

  • 前言
  • 一、重写和覆盖
    • 覆盖
      • 1)完全覆盖父类的实现方式
      • 2)与父类同名方法,但是保留父类的所有代码,新增其它的代码
  • 总结


前言

记录重新和覆盖,完全重写和保留父类的方法重写。


一、重写和覆盖

子类与父类的【同名】方法: 重写。

解释:重写运用的范围是,当子类和父类的方法重名的时候,我想再在父类方法的基础上增加一些功能或者减少一些功能,就会使用重写这种方式。

1、覆盖

对于继承的某此方法:

1)完全覆盖父类的实现方式。

2)与父类同名方法,但是保留父类的所有代码,新增其它的代码。

        super关键字,调用父类的同名方法。

        # super().父类的同名方法

super类的源码

注意点:

(1)面试题:子类和父类有同名方法,当子类要调用父类的同名方法时,要用什么方式?

(2)子类对象调用方法时,优先自己的,自己没有,才去用父类的。

举例:

class Parent:

    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.private_money = 0

    def save_priveate_money(self, money):
        print(f"藏私房钱了....藏了{money}元")
        self.private_money += money
        print(f"藏私房一共有{self.private_money}元")

    def earn_money(self, do_work, salary):
        print(f"{self.name}从事{do_work}工作")
        print(f"{self.name}通过这个工作,每个月赚{salary}元")


class Son(Parent):

    def use_private_money(self):
        print(self.private_money)
        # self.save_priveate_money(1000)
        # super().save_priveate_money(1000)

    # # 与父类同名方法,但是保留父类的所有代码,新增其它的代码。
    # # super关键字,调用父类的同名方法。
    # def earn_money(self, do_work, salary, other_work, other_money):
    #     # super().父类的同名方法
    #     super().earn_money(do_work,salary)
    #     print("开启副业,赚外快....")
    #     print(f"{self.name}的副业是做 {other_work} 工作")
    #     print(f"{self.name}通过这个副业,每个月赚{other_money}元")

    # # 跟父类的同名方法。然后完全重写。
    # def earn_money(self,do_work, salary):
    #     print("开启创业模式")
    #     print(f"创业是:{do_work}")
    #     print(f"创业的年收入是:{salary}")



s = Son("子类", 25)
s.earn_money("物联网项目 - 开店", 150000)

总结

暂无

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值