子类重写父类的方法

发布时间:2024年01月05日

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

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

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

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

???? 扩展父类方法
???????? 使用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()

文章来源:https://blog.csdn.net/qq_51825761/article/details/135411909
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。