干货!Python面向对象编程之单继承

1.继承

  • 面向对象的三大特性:封装、继承、多态

  • 继承:如果两个或者两个以上的类有相同的属性和方法,我们可以抽取一个类来,在抽取的类中声明公共的部分,被抽取出来的类叫做父类/基类/跟类,两个或两个以上的类叫做子类/派生类

  • 在python中,object类是所有类的父类,如果一个类没有明确的告诉他的父类,则默认父类是object

  • 使用继承能够简化代码,提高代码的复用性

2.单继承

  • 单继承:只有一个父类,继承父类的方法和属性

  • 那么,如何实现单继承呢?在Python中,我们只需要在定义子类的时候,指定父类即可。例如:

    父类

    class Person(object):
    # 方法
    def say(self):
    print("父类的方法")

    子类:Boy() 只需要将父类的名称写到子类的后面的小括号中,就可以实现子类对父类的继承

    class Boy(Person):
    def eat(self):
    print("我是子类的方法")

    创建子类对象

    boy = Boy()

    子类对象调用父类对象的方法

    boy.say()

    子类对象调用子类的方法

    boy.eat()

  • 执行结果

    父类的方法
    我是子类的方法

3.含构造函数的继承

  • 当然,我们可以在子类中重写父类的方法。比如:

    父类

    class Animal(object):
    # 构造函数
    def init(self, name, sex):
    self.name = name
    self.sex = sex

    复制代码
      # 方法
      def eat(self):
          print("所有动物都有捕获猎物的技能")

    子类

    class Dog(Animal):
    # 构造函数
    def init(self, name, sex, tail):
    # 第一种方式:子类继承父类的属性
    # Animal.init(self, name, sex)

    复制代码
          # 第二种方式:子类继承父类的属性
          super(Dog, self).__init__(name, sex)
    
          # 子类定义自己的属性
          self.tail = tail
    
      # 方法
      def say(self):
          print("汪汪...")

    创建子类对象

    dog = Dog("牧羊犬", "公", "黑尾巴")
    print(dog.name)
    print(dog.sex)
    print(dog.tail)

    调用方法

    dog.eat()
    dog.say()

  • 执行结果

    牧羊犬

    黑尾巴
    所有动物都有捕获猎物的技能
    汪汪...

​4.总结

  • 单继承是Python面向对象编程中的一个重要概念。通过它,我们可以更好地组织和管理代码,让代码更加清晰、易于理解和维护。

  • 通过方法的重写,我们还可以在继承的基础上进行创新和定制化开发。这就是Python的魅力所在!

相关推荐
南棱笑笑生14 分钟前
20251217给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-5.10】后调通ov5645【只能预览】
linux·c语言·开发语言·rockchip
ulias21215 分钟前
C++ 的容器适配器——从stack/queue看
开发语言·c++
HyperAI超神经27 分钟前
【vLLM 学习】Prithvi Geospatial Mae
人工智能·python·深度学习·学习·大语言模型·gpu·vllm
逻极29 分钟前
Python MySQL防SQL注入实战:从字符串拼接的坑到参数化查询的救赎
python·mysql·安全·sql注入
赫凯35 分钟前
【强化学习】第一章 强化学习初探
人工智能·python·强化学习
Amewin37 分钟前
window 11 安装pyenv-win管理不同的版本的python
开发语言·python
lionliu051941 分钟前
WebAssembly (Wasm)
java·开发语言·wasm
咸鱼加辣44 分钟前
【java面试题】springboot的生命周期
java·开发语言·spring boot
weixin_462446231 小时前
用 Go 快速搭建一个 Coze (扣子)API 流式回复模拟接口(Mock Server)
开发语言·golang·状态模式
小鸡吃米…1 小时前
Python编程语言面试问题二
开发语言·python·面试