子类重写父类的方法

本文介绍了面向对象编程中类名的命名约定(驼峰命名法),以及实例名和模板名的小写格式。重点讲解了如何在子类中重写和扩展父类的方法,包括覆盖和使用super()调用父类方法的情况,通过实例代码展示了如何操作。
摘要由CSDN通过智能技术生成

 类名采用驼峰命名法,即类名的每个单词的首字母都大写
实例名和模板名都采用小写格式,并在中间加下划线# 当父类的方法实现不能满足子类的时候,可以对方法进行重写

# 重写父类的方法有两种:

#     覆盖父类方法
#     扩展父类方法

     覆盖父类方法
         在开发过程中父类实现的方法与子类现完全不同,可以使用覆盖的形式,在子类中重新编写父类的方法,具体的实现形式就是在子类中定义一个与父类同名的方法重写父类之后,只会调用子类中重写后的方法,不会调用父类中封装的方法

     扩展父类方法
         使用super().父类方法名, 并且super后面的父类方法参数不要加self参数;

# 类名采用驼峰命名法,即类名的每个单词的首字母都大写
# 实例名和模板名都采用小写格式,并在中间加下划线

# 父类
class FoodCategory:
    def __init__(self, name, price):
        self.name = name
        self.price = price
    
    def print_info(self):
        print(f"我叫{self.name}, 我的单价是{self.price}元一斤")


# 子类
class Fruit(FoodCategory):
    def __init__(self, name, price):
        super().__init__(name, price)

# 子类
class Vegetable(FoodCategory):
    def __init__(self, name, price):
        super().__init__(name, price)

# 子类
class Snack(FoodCategory):
# snack : 小吃;点心;快餐
    def __init__(self, name, price):
        super().__init__(name, price)
    
    def print_info(self):
        print(f"我叫{self.name}, 我的单价是{self.price}元一份")
    # 重写父类方法,覆盖父类FoodCategory.print_info()方法
    
# 当父类的方法实现不能满足子类的时候,可以对方法进行重写
# 重写父类的方法有两种:

#     覆盖父类方法
#     扩展父类方法

#     覆盖父类方法
#         在开发过程中父类实现的方法与子类现完全不同,可以使用覆盖的形式,在子类中重新编写父类的方法
#         具体的实现形式就是在子类中定义一个与父类同名的方法重写父类之后,只会调用子类中重写后的方法,不会调用
#         父类中封装的方法

#     扩展父类方法
#         使用super().父类方法名, 并且super后面的父类方法参数不要加self参数;
        
apple = Fruit("苹果", 8)
orange = Fruit("橙子", 7)
greens = Vegetable("青菜", 5)
hamburger = Snack("汉堡包", 20)

apple.print_info()
orange.print_info()
greens.print_info()
hamburger.print_info()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值