【Python面向对象】封装、继承、多态

article/2025/9/18 12:36:46

面向对象有三个基本特征,分别是封装、继承和多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用/调用!本文将利用Python语言进行简单举例,以帮助大家更好地理解这三个特征。

目录

一、面向过程和面向对象

二、封装

1.未封装的用户登录

2.封装后的用户登录

三、继承

四、多态

总结


一、面向过程和面向对象

面向过程是分析出解决问题所需要的步骤,然后用一些函数把这些步骤一步步实现,使用的时候依次调用函数(开火→炒菜→洗碗)👇;

面向对象是把构成问题的事务分解成各个对象,建立对象来描述某个事务在解决问题的步骤中的行为(开火、炒菜、洗碗)👇,按功能将对象(万物皆可对象)进行划分,确定对象的属性和行为,之后方便调用也更为灵活。

二、封装

封装是为了提高代码的复用性和可维护性,把很多数据封装到一个对象中,把固定功能的代码封装到一个代码块。

把一台洗衣机看做洗衣机类的一个实例,洗衣机里有标准洗、速洗、精洗、桶干燥、洁桶等多种功能。 作为用户不需要知道这些功能内部的具体实现,需要某项功能只要选择对应的功能键即可。这就是洗衣 机封装了以上多种功能。

例如:完成一个登录需要三个步骤,比如我把输入用户名、输入密码、点击登录三段代码写成一 个函数,那么这个函数就是登录功能的封装。我们在下次需要用到登录的时候,不需要重复写那三段代 码,而只需要调用登录函数即可。

1.未封装的用户登录:

大家可以看到,实现两个用户的登录就需要很多代码,重复率较高,假如是三个甚至更多用户则需要海量的代码,因此需要封装操作。

#通过输入输出模拟用户登录
#登录1(用户:xiaoming)
user = 'xiaoming'
psw = '123456'
print('请输入用户名:',user)
print('请输入密码:',psw )
print('点击登录按钮!')
print('登录成功!')
#登录2(用户:xiaohong)
user = 'xiaohong'
psw = '1234567'
print('请输入用户名:',user)
print('请输入密码:',psw )
print('点击登录按钮!')
print('登录成功!')

运行结果:

2.封装后的用户登录

首先在login.文件封装一个用户登录方法,一般是定义类后再定义函数,然后就可以在该项目的其他py文件中直接调用该函数,调用时填入user和psw两参数的值即可,十分方便快捷!

#login.py文件
class Login():
#类:信息封装的基础def user_login(self,user,psw):#封装用户登录方法,方便调用print('请输入用户名:', user)print('请输入密码:', psw)print('点击登录按钮!')print('登录成功!')
#testcase.py文件,调用login.py文件的Login类
from login import Loginlg = Login() #实例化,必要的操作
lg.user_login('xiaoming','123456')#调用类中的函数并使用
lg.user_login('xiaohong','1234567')

运行结果:

三、继承

简单来说继承是类与类的一种关系,子类与父类的关系,子类继承父类的属性与方法(类就是继承中的class)。

例如:猫属于动物,猫类继承于动物类,猫类就是子类,动物类是父类

动物类具备吃的方法,那么猫类能够继承动物类的吃方法,能够在猫类中调用吃方法。

class Animal():#定义动物类,动物都会吃def eat(self):print('会吃')
class Cat(Animal):#定义猫类,同时继承动物类,猫会喵喵def miao(self):print('会喵喵')
c = Cat()#实例化
c.miao()
c.eat()#继承Animal父类的eat方法

运行结果:

四、多态

不同的子类调用相同的方法,产生不同的结果,前提是继承,多态的关注在于对象的行为和属性而非类型。

例如:猫和狗都属于动物,都具有叫声这个方法,但是猫和狗的叫声实际上是不一样的,这时我们往往是定义成一样名称的功能但是功能的类型不一样

查看运行结果可知,虽然都调用了talk方法,但是输出结果是不一样的,可知会调用自家的方法(虽然都是talk方法)并出产生不同的结果;同时需要注意一个点,假如父类(Animal)和子类(Cat、Dog)同时存在talk方法,那么调用时也只以子类中的方法为准(方法名称相同时)。

class Animal: #定义动物类,动物都会发声def talk(self):print('呜呜')
class Cat(Animal):#定义猫类,同时继承动物类,猫会喵喵def talk(self):print('会喵喵')
class Dog(Animal):#定义狗类,同时继承动物类,猫会汪汪def talk(self):print('会汪汪')c = Cat()#实例化猫类
c.talk()#调用猫类的talk方法
d = Dog()#实例化狗类
d.talk()#调用狗类的talk方法

运行结果:


总结

大家如果有疑问都可以评论提出,有不足之处请大家批评指正,希望能多结识这方面的朋友,共同学习、共同进步。


http://chatgpt.dhexx.cn/article/jYbZGGRE.shtml

相关文章

浅谈对于封装、继承与多态的理解(Java)

目录 封装 继承 父类成员的访问 如何在子类中访问父类同名的成员 子类构造方法 代码块在继承上的执行顺序 多态 多态的实现条件 重写 多态的优缺点 面向对象程序的三大特征:封装继承和多态。 封装 封装:将数据和操作数据的方法进行有效…

C++的封装、继承、多态

C封装、继承、多态总结 面向对象的三个基本特征:封装、继承、多态。 封装可以隐藏实现细节,使得代码模块化; 继承可以扩展已存在的代码模块(类); 它们的目的都是为了——代码重用。 而多态则是为了实现另…

Python中的封装、继承与多态(史上最简单易懂版)

1.前言 面向对象的三大特性,想必大家肯定是耳熟能详。就是今天要介绍的内容:封装、继承、多态。面向对象的思想都是一样的,这里我用Python进行实现! 2.封装 2.1 什么是封装呢? 封装就是:我写了一个类&a…

java 封装,继承,多态

java 封装,继承,多态 封装:安全性继承:复用性多态:拓展性书写思路:具体代码: 封装:安全性 在对类封装的时候 使用的访问权限是私有的(private),读取和写入数…

C++封装、继承、多态

C++封装继承多态总结 面向对象的三个基本特征 面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用! 封装 …

【Java】封装、继承与多态

目录 封装 一、public访问修饰符 二、private访问修饰符 1、修饰属性 2、getter和setter 三、default访问修饰符 继承 一、父类和子类成员关系 1、父类和子类属性之间的调用 2、父类和子类方法之间的调用 二、父类与子类的构造方法 三、super修饰符 1、修饰属性 2、…

JAVA封装,继承,多态详解

Java的三大特性为封装,继承,多态。 封装 封装是 JAVA 面向对象的特点的表现,封装是一种信息隐蔽技术。它有两个含义:即把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位;以及尽可能隐藏对…

封装,继承,多态

面向对象的三个基本特征 面向对象的三个基本特征是:封装、继承、多态。其中,封装 可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态…

java之封装,继承,多态

一,前言 ​ 今天总结一下关于Java的三大特性,封装,继承,多态。其实关于三大特性对于从事编程人员来说都是基本的了,毕竟只要接触Java这些都是先要认识的,接下来就系统总结一下。 二,封装 ​ …

封装 继承和多态

封装继承和多态 封装 我们在设计程序时,讲究六个字,高内聚,低耦合 封装就是我们对数据进行隐藏,多用于来封装属性,封装方法较少。 记住封装的核心,就是私有(private) 令属性为私…

js面向对象之封装,继承,多态,类的详解

封装 在面向对象的操作中,我们有完全不同的一些写法。 想要封装我们的对象,就要用到构造函数。我们需要创建构造函数,构造函数和函数一致,都是通过function创建的 首字母大写(规范,为了和普通函数进行区…

【c++ 封装、继承、多态】

文章目录 面向对象的三个基本特征1. 封装2. 继承2.1 继承的三种实现方式 3. 多态3.1 多态的俩种实现方式分析3.2 多态存在的三个必要条件3.3 C多态机制的实现: 4. 动态绑定与多态4.1 什么是动态绑定4.2 动态绑定发生的条件?4.3 动态绑定的实际意义4.4 程…

Java基础—封装继承多态(详细)

文章目录 面向对象三大特征 封装 继承 多态1.封装2.继承2.1注意事项参考文档2.2 this和super关键字2.3 重载和重写 3.多态3.1方法的多态3.2对象的多态3.3多态转型3.3.1向上转型3.3.2向下转型3.3.3 instanceof 关键字 面向对象三大特征 封装 继承 多态 1.封装 定义:就是把事物…

Java中的封装,继承和多态(详解)

目录 封装继承多态接口 一些建议和小结写在最后的话 封装 所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,我们定义如下一个类,可以看到所有的成员变量和成员方法都使用private修饰了,我们现在来使用一…

封装、继承、多态

目录 访问限定符 封装 继承 super关键字 super和this的比较 继承在内存中的情况 重写override 重写和重载的比较 多态 JAVA中的动态绑定机制 JAVA面向对象程序三大特性:封装、继承、多态。在类和对象阶段,主要研究的就是封装特性。 在了…

【Java基础】 ⾯向对象编程三⼤特性 --封装、继承、多态

文章目录 封装继承多态 封装 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 通俗的说,一个类就是一个封装了数…

Java基础知识之封装+继承+多态详解

前言 这篇博客是基于Java类和对象的基础之上的相关知识点。因为特别重要且语法规则较多,所以想单独总结方便之后复习。 本篇博客涉及知识点思维导图: 目录 1.封装 2.继承 3.多态 1.封装 生活中有很多东西我们并不想让其它人知道,比如我的身…

封装、继承和多态

目录 前言一、什么是封装?二、什么是继承?三、什么是多态? 前言 其实封装、继承和多态不仅仅是java的特性,而是所有面向对象程序的三大特性。 一、什么是封装? 封装就是对类内部的实现细节进行隐藏,然后…

封装、继承、多态 详解

面向对象的三个基本特征:封装、继承、多态 1.封装 (1)封装是实现面向对象的第一步,封装就是将数据或函数等集合在一个单元中(类)。被封装的对象通常被称为抽象数据类型。 (2)类具…

面向对象编程三大特性------封装、继承、多态

一、封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节&am…