python面向对象特征之继承
面向对象特征(继承)
1. 什么是继承
## 继承就是新建类的一种方式,新建的类我们称为 子类或者派生类, 被继承的类我们称之为父类或者 基类
# 继承的特性是:子类可以使用父类中的属性或者方法
# 继承是类与类之间的关系
2.为什么要用继承
# 类解决了对象与对象之间代码冗余的问题
# 继承则解决的类与类之间的代码冗余问题
3. 如何使用继承
# 新式类:继承了object类的子子孙孙类都是新式类
# 经典类:没有继承object类的子子孙孙类都是经典类
# 新式类与经典类只有在python2中才区分
# python3都为新式类
基本使用
1. 不适用继承:
# 不使用继承
class Animal:
def run(self):
print('走路')
def eat(self):
print('吃饭')
class Dog:
def run(self):
print('走路')
def eat(self):
print('吃饭')
def speak(self):
print('汪汪叫')
class Person:
def run(self):
print('走路')
def eat(self):
print('吃饭')
def work(self):
print('上班')
# 这样人和狗都有共同的特性 走路和吃饭 就有重复的特性 使得代码冗余
# 这样就可以使用继承来解决这个问题
2.使用继承
class Animal: # 它作为父类(基类)
head = 'from Animal head'
def run(self):
print('走路')
def eat(self):
print('吃饭')
# Dog子类和Person子类都继承Animal父类
class Dog(Animal):
def speak(self):
print('汪汪叫')
class Person(Animal):
def work(self):
print('工作')
dog = Dog() # 实例化
dog.eat() # 找到父类Animal的eat方法
print(dog.head) # 找到父类Animal的head属性
多继承
eg:
# 新式类:按照广度优先查询
# 经典类:按照深度优先查询
class A(object):
def test(self):
print('from A')
class B(A):
# def test(self):
# print('from B')
pass
class C(A):
# def test(self):
# print('from C')
pass
class D(B):
# def test(self):
# print('from D')
pass
class E(C):
# def test(self):
# print('from E')
pass
class F(D, E): # 多继承
# def test(self):
# print('from F')
pass
f1 = F()
f1.test() # 多继承 按照顺序找:对象自己>>类>>父类 (按照新式类优先查询)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)