类的继承

简介: 类的继承

在Python中,类的继承是一种面向对象编程的核心特性,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。通过继承,子类可以重用父类的代码,并且可以在此基础上添加或修改功能。

下面是一个简单的Python代码示例,演示了如何定义父类和子类,以及子类如何继承父类的属性和方法:

 

# 定义父类(基类)

 

class Animal:

 

def __init__(self, name):

 

self.name = name

 

 

 

def speak(self):

 

print(f"{self.name} makes a sound")

 

 

 

# 定义子类(派生类),继承自Animal类

 

class Dog(Animal):

 

def __init__(self, name, breed):

 

# 调用父类的初始化方法

 

super().__init__(name)

 

self.breed = breed

 

 

 

def bark(self):

 

print(f"{self.name} barks!")

 

 

 

# 重写父类的方法

 

def speak(self):

 

print(f"{self.name} barks")

 

 

 

# 创建Dog类的实例

 

my_dog = Dog("Buddy", "Labrador")

 

 

 

# 调用继承自父类的方法

 

my_dog.speak() # 输出: Buddy barks

 

 

 

# 调用子类特有的方法

 

my_dog.bark() # 输出: Buddy barks!

 

 

 

# 访问继承的属性和子类特有的属性

 

print(my_dog.name) # 输出: Buddy

 

print(my_dog.breed) # 输出: Labrador

在这个例子中,Animal 类是一个父类,它有一个 speak 方法和一个 name 属性。Dog 类继承自 Animal 类,它有一个 bark 方法和一个 breed 属性。Dog 类通过 super().__init__(name) 调用父类的 __init__ 方法来初始化 name 属性。同时,Dog 类重写了父类的 speak 方法,所以当调用 my_dog.speak() 时,输出的是狗叫的声音。

注意几个关键点:

super() 函数:用于调用父类(或超类)的一个方法。在子类的 __init__ 方法中,我们使用 super().__init__(name) 来确保父类的 __init__ 方法被正确调用,从而初始化继承的属性。

方法重写:子类可以重写父类的方法,即定义与父类同名的方法。在这种情况下,当子类对象调用该方法时,将执行子类中的版本。在上面的例子中,Dog 类重写了 speak 方法。

属性访问:子类对象可以访问从父类继承的属性,以及子类自己定义的属性。

继承是面向对象编程中一个强大的工具,它允许我们创建更灵活和可维护的代码结构。通过继承,我们可以建立类之间的层次结构,并在不同的层次上添加或修改功能。

 

目录
相关文章
|
自动驾驶 物联网 5G
毫米波技术及其在5G网络中的应用详解
毫米波技术及其在5G网络中的应用详解
1268 3
【干货】Python下载网络小说
【干货】Python下载网络小说
|
关系型数据库 MySQL 数据库
【MySql】MySQL数据库--什么是MySQL的回表 ?
【MySql】MySQL数据库--什么是MySQL的回表 ?
192 0
【MySql】MySQL数据库--什么是MySQL的回表 ?
|
C++
(C++)只出现一次的数字II--异或
(C++)只出现一次的数字II--异或
85 0
|
数据可视化 数据挖掘 大数据
性感的数据可视化 —— 精讲桑基图、气泡图、南丁格尔玫瑰图
文章主要为大家介绍三个可视化故事,和他们使用的三个重要的可视化组件:桑基图、气泡图、南丁格尔玫瑰图。
1883 0
性感的数据可视化 —— 精讲桑基图、气泡图、南丁格尔玫瑰图
|
8天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
7天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
337 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话