当前位置: 首页 > article >正文

三十、Python基础语法(继承-下)

方法重写

重写:在子类中定义和父类中名字相同的方法,如果父类中方法不能满足子类对象的需求,重写的形式有覆盖和扩展

一、覆盖式重写

class Vehicle:
    def move(self):
        print("The vehicle is moving in a general way.")


class Car(Vehicle):
    # 重写move方法
    def move(self):
        print("The car is driving on the road.")


class Bicycle(Vehicle):
    # 重写move方法
    def move(self):
        print("The bicycle is being pedaled.")


vehicle = Vehicle()
vehicle.move()  # The vehicle is moving in a general way.

car = Car()
car.move()  # The car is driving on the road.

bicycle = Bicycle()
bicycle.move()  # The bicycle is being pedaled.

二、扩展式重写

扩展式重写:指父类中原有的功能保留,在此基础上添加新的功能代码。

实现:在子类中定义和父类名字相同的方法,使用 super().父类方法名(父类方法参数)来调用父类中的方法,然后再书写新的功能代码

class Animal:
    def make_sound(self):
        print("Animal makes a sound.")


class Dog(Animal):
    def make_sound(self):
        # 先调用父类的方法
        super().make_sound()
        print("Dog barks.")


class Cat(Animal):
    def make_sound(self):
        # 先调用父类的方法
        super().make_sound()
        print("Cat meows.")


dog = Dog()
dog.make_sound()

cat = Cat()
cat.make_sound()

运行结果:


http://www.kler.cn/a/378803.html

相关文章:

  • SpringCloud Alibaba-05 Seata分布式事务处理
  • 使用 Spring Boot 搭建 WebSocket 服务器实现多客户端连接
  • C++ 详细讲解 洛谷P1428 小鱼比可爱
  • 04字符串算法/代码随想录
  • C++11新特性之Lambda函数
  • openGauss数据库-头歌实验1-3 创建和管理模式
  • Shutdown Abort 强制关库,真的有可能起不来?
  • C++算法练习-day32——222.完全二叉树的节点个数
  • 宠物排泄物图像分割系统:高效目标识别
  • 开放式耳机什么品牌质量好?5款排行榜里的开放式蓝牙耳机
  • rnn/lstm 项目实战
  • 关于使用K8s实现容器化作业的总时效最优调度
  • 【设计模式】结构型模式(一):适配器模式、装饰器模式
  • 爬虫技术——小白入狱案例
  • “灵境·石景山杯”数字文旅创新大赛晋级名单
  • 路由策略与路由控制
  • CNN-Attention分类预测 | Matlab实现多特征分类预测
  • qt QBrush详解
  • R 语言科研配色 --- 第 9 期
  • 基于SSM的在线作业管理系统 -octopus-master(源码+调试)
  • Go语言有哪些数据类型?
  • Java集合使用注意事项总结
  • 数据结构之二叉树--前序,中序,后序详解(含源码)
  • oracle如何在不同业务场景下正确使用聚合查询、联合查询及分组查询?
  • 使用Java实现机器学习:一个入门指南
  • JS中DOM和BOM