python面向对象四大特征

本文介绍了面向对象编程的四大核心概念:抽象、封装、继承和多态。解释了如何通过抽象来提取类或接口,如何利用封装保护对象属性,以及继承和多态如何增强代码的复用性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 抽象

忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面.(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口).抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一个数据抽象,而是过程抽象.

数据抽象 -->表示世界中一类事物的特征,就是对象的属性.比如鸟有翅膀,羽毛等(类的属性)

过程抽象 -->表示世界中一类事物的行为,就是对象的行为.比如鸟会飞,会叫(类的方法)

 

2. 封装

有些时候我们不希望把对象的属性公开,就可以把它设为私有,Python并没有像其他语言对成员的权限控制系统,如private和protected,默认情况下,Python的所有属性都是公有的,可以被访问到,要设成私有,则在前面加双下划线。

3. 继承

继承可以使子类拥有父类的属性和方法,并且可以重写这些方法,加强代码的复用性Python中子类可以有多个父类,但是不建议这样使用,一般会产生重复调用的问题,Super().方法名,可以调用父类的方法(不用传参,作用是调用父类的方法,传的是子类实例的值)

4. 多态

多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)。

指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。


### Python 面向对象编程(OOP)概念与用法 面向对象编程(Object-Oriented Programming, OOP)是一种以对象为中心的编程范式,它将数据和操作数据的方法封装在一起,形成一个整体单元,即对象。Python 作为一种多范式语言,对 OOP 提供了全面的支持[^1]。 #### 一、OOP 的基本概念 在 Python 中,OOP 的核心概念包括(Class)、对象(Object)、属性(Attribute)和方法(Method)。是对象的蓝图或模板,定义了对象的属性和行为。对象是的具体实例。属性用于存储对象的状态信息,而方法则是定义在中的函数,用于描述对象的行为。 ```python class Dog: # 属性 species = "Canis familiaris" # 初始化方法(构造函数) def __init__(self, name, age): self.name = name # 实例属性 self.age = age # 实例属性 # 实例方法 def description(self): return f"{self.name} is {self.age} years old." # 另一个实例方法 def speak(self, sound): return f"{self.name} says {sound}" ``` #### 二、OOP 的四大支柱 OOP 的核心特性通常被总结为四大支柱:封装、继承、多态和抽象。 1. **封装** 封装是指将数据和操作数据的方法绑定在一起,并隐藏对象内部实现细节的过程。通过封装,可以保护对象的数据不被外部直接访问。 ```python class BankAccount: def __init__(self, balance=0): self.__balance = balance # 私有属性 def deposit(self, amount): if amount > 0: self.__balance += amount return True return False def withdraw(self, amount): if 0 < amount <= self.__balance: self.__balance -= amount return True return False def get_balance(self): return self.__balance ``` 2. **继承** 继承允许一个(子)从另一个(父)派生,从而重用父的代码并扩展其功能。 ```python class Animal: def __init__(self, name): self.name = name def speak(self): raise NotImplementedError("Subclasses must implement abstract method") class Dog(Animal): def speak(self): return "Woof!" class Cat(Animal): def speak(self): return "Meow!" ``` 3. **多态** 多态允许不同的对象通过相同的接口调用不同的实现方法。 ```python def animal_sound(animal): print(animal.speak()) dog = Dog("Buddy") cat = Cat("Kitty") animal_sound(dog) # 输出: Woof! animal_sound(cat) # 输出: Meow! ``` 4. **抽象** 抽象用于隐藏复杂实现细节,仅暴露必要的功能接口给用户。在 Python 中,可以通过 `abc` 模块实现抽象和方法。 ```python from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area(self): pass class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height ``` #### 三、高级特性 Python 还支持一些高级的 OOP 特性,例如静态方法(Static Method)、方法(Class Method)和特殊方法(Magic Methods)。 1. **静态方法** 静态方法与无关,也不需要实例化即可调用。 ```python class Math: @staticmethod def add(x, y): return x + y ``` 2. **方法** 方法接收本身作为第一个参数,通常用于工厂模式。 ```python class Person: def __init__(self, name, age): self.name = name self.age = age @classmethod def from_birth_year(cls, name, birth_year): age = 2023 - birth_year return cls(name, age) ``` 3. **特殊方法** 特殊方法(也称为魔术方法)允许我们自定义的行为,例如 `__str__`、`__len__` 等。 ```python class Vector: def __init__(self, x, y): self.x = x self.y = y def __add__(self, other): return Vector(self.x + other.x, self.y + other.y) def __str__(self): return f"Vector({self.x}, {self.y})" ``` ### 总结 Python 的 OOP 功能强大且灵活,能够满足从小型脚本到大型应用的各种需求。通过掌握、对象、继承、多态等基本概念,以及静态方法、方法和特殊方法等高级特性,开发者可以更高效地构建复杂的软件系统[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值