Python 继承,重写,super()调用父类方法操作示例

yizhihongxing

Python继承是指子类继承父类的属性和方法,可以在不影响父类功能的情况下,对子类进行扩展。Python中使用关键字class定义类,使用extends关键字来继承父类。下面演示一个简单的继承示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show_info(self):
        print(f"Name: {self.name}\nAge: {self.age}")

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def show_info(self):
        super().show_info()
        print(f"Grade: {self.grade}")

student1 = Student("Tom", 18, "Grade 1")
student1.show_info()

在上述代码中,Person是父类,Student是子类。子类Student继承了父类Person的属性和方法。

重写是指在子类中重写父类方法,可以修改父类方法的实现,实现自己的功能。如果在子类中发现的方法名与父类方法名一样,那么子类中的方法将覆盖父类中的方法。下面演示一个简单的重写示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show_info(self):
        print(f"Name: {self.name}\nAge: {self.age}")

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def show_info(self):
        print(f"Student's grade is {self.grade}")

student1 = Student("Tom", 18, "Grade 1")
student1.show_info()

在上述代码中,我们重写了父类Personshow_info()方法,子类Student中的show_info()方法将会覆盖父类的show_info()方法,并且输出的内容也不同。

super()调用父类方法是指在子类中调用父类的方法,可以继承父类的功能,并增加自己的功能。使用super()方法可以直接调用父类的方法,而不需要指定父类的名称。下面演示一个简单的super()调用父类方法示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show_info(self):
        print(f"Name: {self.name}\nAge: {self.age}")

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def show_info(self):
        super().show_info()
        print(f"Grade: {self.grade}")

student1 = Student("Tom", 18, "Grade 1")
student1.show_info()

在上述代码中,我们使用了super()方法来调用Person类中的show_info()方法,从而可以得到父类中的信息,同时输出子类独有的信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 继承,重写,super()调用父类方法操作示例 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 利用maven引入第三方jar包以及打包

    利用Maven引入第三方jar包以及打包的攻略 Maven是一个强大的项目管理工具,可以帮助我们管理项目依赖和构建过程。下面是使用Maven引入第三方jar包以及打包的详细步骤: 1. 创建Maven项目 首先,我们需要创建一个Maven项目。可以使用命令行或者IDE(如IntelliJ IDEA、Eclipse等)来创建项目。以下是使用命令行创建Maven…

    other 2023年10月13日
    00
  • Android中读取中文字符的文件与文件读取相关介绍

    以下是关于Android中读取中文字符的文件与文件读取相关介绍的完整攻略: Android中读取中文字符的文件与文件读取相关介绍 读取文件 在Android中,可以使用FileInputStream或BufferedReader等类来读取文件。以下是一个示例: try { File file = new File(\"path/to/file.tx…

    other 2023年10月13日
    00
  • mysql时间与字符串之间相互转换

    MySQL时间与字符串之间相互转换 MySQL 是一款使用广泛的关系型数据库管理系统,时间和日期是其常用数据类型之一。在 MySQL 中,可以通过各种函数和关键字来进行时间和字符串之间的相互转换。本文将介绍一些常用的 MySQL 时间和字符串相互转换方法。 时间转字符串 在 MySQL 中将时间转换成字符串有许多方法,其中最常用的是 DATE_FORMAT …

    其他 2023年3月28日
    00
  • springboot maven 项目打包jar 最后名称自定义的教程

    Spring Boot Maven项目打包jar最后名称自定义的教程 在Spring Boot项目中,使用Maven进行打包时,默认生成的jar文件名称是根据项目的artifactId和version来命名的。如果你想自定义生成的jar文件名称,可以按照以下步骤进行操作: 打开项目的pom.xml文件。 在<build>标签下添加以下配置: xm…

    other 2023年10月13日
    00
  • 修改文件名的批处理代码

    下面是修改文件名的批处理代码的完整攻略: 1. 批处理代码概述 批处理代码可以帮助批量修改文件的名称,大大提高了工作效率。其基本流程如下: 指定源文件夹路径 使用for循环遍历源文件夹中的文件 对每个文件执行重命名操作 完成后输出成功信息 2. 修改文件名的代码示例 下面是一个简单的修改文件名的代码示例: @echo off setlocal EnableD…

    other 2023年6月26日
    00
  • PYQT5 实现界面的嵌套方式

    PYQT5 实现界面的嵌套方式攻略 1. 简介 PYQT5 是一个用于创建图形用户界面的Python库。它提供了丰富的功能和工具,可以轻松地创建各种类型的界面。在 PYQT5 中,可以使用嵌套的方式来组织和管理界面元素,以实现更复杂的界面设计。 2. 嵌套方式 PYQT5 提供了多种嵌套方式,以下是两种常见的示例说明: 2.1 嵌套布局方式 在 PYQT5 …

    other 2023年7月27日
    00
  • SpringBoot解决同名类导致的bean名冲突bean name conflicts问题

    SpringBoot解决同名类导致的bean名冲突问题攻略 问题描述 在使用SpringBoot开发项目时,可能会遇到同名类导致的bean名冲突问题。当同一个包下存在多个同名类时,Spring容器在进行bean装配时无法准确地确定要注入的是哪个类的实例,从而引发bean名冲突问题。 解决方案 为解决同名类导致的bean名冲突问题,可以采取以下几种方式: 1.…

    other 2023年6月28日
    00
  • dockernginx容器启动挂载到本地详解

    以下是关于“dockernginx容器启动挂载到本地详解”的完整攻略: dockernginx容器启动挂载到本地详解 在使用Docker部署Nginx时,可以将Nginx文件和网站文件挂载本地,方便修改和管理。以下是dockernginx容器启动挂载到本地的详细步骤: 创建Nginx配置文件和网站文件目录 在本地创建目录,用于存放Nginx配置文件和网站文件…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部