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

【基础】类中的继承

1.什么是类的继承

2.类的继承方式

  1. 单继承(Single Inheritance)

  2. 多继承(Multiple Inheritance)

3.在子类中添加方法

4.覆盖父类中的方法

5.总结

1.什么是类的继承
它允许一个类(子类)获取另一个类(父类)的属性和方法。通过继承,子类可以重用父类的代码,并且可以在此基础上添加自己的特定属性和方法,从而实现代码的复用和扩展。 在类的继承中,父类通常包含一些通用的属性和方法,而子类可以继承这些通用的特性。子类可以通过继承获得父类的属性和方法,并且可以根据需要进行修改或扩展。这种机制使得代码更具有灵活性和可维护性。

2.继承方式
1.单继承
在Python中,一个类可以通过在类定义时在括号中指定父类来实现单继承。

# 定义一个父类Animal
class Animal:
    def __init__(self, name):
        self.name = name
    def speak(self):
        print("Animal is speaking")
# 定义一个子类Dog,继承自Animal
class Dog(Animal):
    def __init__(self, name, breed):
        *super().__init__(name)* //**注意**:当子类定义init方法时,必须实现父类init的调用,将属性继承过来,这里name是父类属性
        self.breed = breed
    def speak(self): #注意:当子类和父类方法名嘴一样时,优先调用子类的
        print("Dog is barking")
    def wag_tail(self): #还可以添加方法
        print("Dog is wagging its tail")

  
# 创建一个Dog对象
dog = Dog("嘟嘟", "灰色")
dog.speak()

#输出  Dog is barking 

多继承
多继承指一个子类可以同时继承多个父类的特性。

# 定义一个父类Animal
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        print("Animal is speaking")

# 定义一个父类Flyable
class Flyable:
    def fly(self):
        print("Flying high in the sky")

# 定义一个子类Bird,同时继承Animal和Flyable
class Bird(Animal, Flyable):
    def __init__(self, name, species):
        super().__init__(name)
        self.species = species

    def speak(self):
        print("Bird is chirping")

        # 创建一个Bird对象

bird = Bird("Sparrow", "Small Bird")
print(bird.name)  # 输出:Sparrow
print(bird.species)  # 输出:Small Bird
bird.speak()  # 输出:Bird is chirping

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

相关文章:

  • css:盒子模型
  • 实现 MVC 模式
  • 详解基于C#开发Windows API的SendMessage方法的鼠标键盘消息发送
  • 【嵌入式开发】单片机CAN配置详解
  • [代码随想录Day10打卡] 理论基础 232.用栈实现队列 225. 用队列实现栈 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
  • Unity3D学习FPS游戏(12)敌人检测和攻击玩家
  • 工程认证导向的Spring Boot计算机课程管理平台
  • 微服务架构面试内容整理-SpringCloud Netflix‌与Spring Cloud Alibaba比较
  • spring cloud实战总结(优雅下线、灰度发布)
  • AI问答-base64:概念、原理、使用
  • 安卓全屏实现
  • IPv4与IPv6的优缺点
  • 【go从零单排】Stateful Goroutines(有状态的 goroutines)
  • 2024 年 Postman 网页版使用图文教程
  • Tomcat(6) 什么是Servlet容器?
  • 单例模式和适配器模式的简单介绍
  • [ACTF2020 新生赛]Upload 1--详细解析
  • JVM(一、基础知识)
  • 7. 基于 Redis 实现分布式锁
  • 基于Java Web的传智播客crm企业管理系统的设计与实现
  • 公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
  • 普通用户切换到 root 用户不需要输入密码配置(Ubuntu20)
  • vxe-table 3.10+ 进阶高级用法(一),根据业务需求自定义实现筛选功能
  • 【软考】系统架构设计师-计算机系统基础(2):操作系统
  • 【Linux】Linux 命令awk和sed的简单介绍
  • Vestar:AI造神邸,颠覆Meme叙事的新范式