三分钟带你读懂面向对象的三大特征:封装,继承,多态

很多小伙伴在学面向对象的时候觉得非常抽象,尤其是对于面向对象的三大特征:封装,继承,多态不理解,那这期文章呢,九九就给大家安排,三分种带你迅速掌握封装,继承,多态。

面向对象第一大特征—封装

图片

封装的概念

广义的封装:类和函数的定义过程本身就是封装的体现,封装,可以理解成打包,然后隐藏对象的属性和实现细节,仅对外访问接口(就好比电视机隐藏了部件和实现的细节,但是在外面开机关机和切换平台的按钮提供大家访问功能。)

狭义的封装:类中一些不希望被外界直接访问的属性和特征,不对外公开,隐藏细节。

封装其实就是属性私有化。

封装的好处:可以提高数据的安全性

面向对象第一大特征—继承

图片

图片

继承的概念:

我们生活中理解的继承,一般是指子女继承父母或长辈的财产或者身上的一些行业习惯和特征。

在我们编程语言中,面向对象也有继承的这个概念。子类继承了父类, 同时也将获得父类的全部成员变量和方法.

图片

一般两个或者两个以上的类如果具有相同的属性或者方法,可以把这些相同的部分抽取一个类出来,这个类便是父类,基类,超类,根类,那下面继承了他属性和行业的:子类,派生类,他们之间的关系:子类继承父类。

在Python面向对象中,继承可以分为:

  • 单继承
  • 多继承

单继承

字面理解,便是一个子类只能有一个父类,被称为单继承

定义父类:

class 父类类名(object):类体

字义子类:

class 子类类名(父类类名):类体

多继承

一个子类可以继承多个父类,比如熊猫即是熊类的子类,拥有熊的一些特征和行为,它也是猫类,拥有猫的一些属性和行为。

那如何继承多个父类呢?我们来看看多继承的语法:

语法:class 子类类名(父类1,父类2,父类3…):类体

注意:

1、多继承中,子类的对象是可以访问它所有父类的属性和方法

2、如果子类的对象想访问多个父类同名的属性,则采取就近原则。

面向对象第一大特征—多态

图片

图片

例如上图中,笑和哭是人类的一些共有的行为,但是不同的人呈现出来的具体形态是不一样的。人类还有一些共有的行为:说话,思考

虽然不同的对象都实现了人类的一些行为,但是他们之间也有差异化。比如女人和男人都可以说话,但是女人说话温和一些,男人说话硬气一些。再比如女人和男人都可以思考,但是女人和男的思考方式又有不同,女人思考会想很多,顾虑很多,而男人思考更像一条直线,比较简单。想的比较少。

像上面我们提到的这些差异化其实就是多态的表现。

多态的概念:

其实多态就是指不同的对象对于同一咱行为可以呈现出不同的具体形态,不同的效果。

好了,通过今天的这篇文章相信大家对于面向对象的三大特征又有进一步理解了,看懂的小伙伴记得一定要点赞哦。

你的点赞就是我们的动力,咱们会更加努力给大家推出更多更好的软件测试相关的技术文章和面试文章。

对软件测试感兴趣的小伙伴一定要记得关注公众号哦,每周都有新鲜出炉的干货等你来拿!

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/564639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

17.基础乐理-调式、自然大调式(C大调、D大调。。。)

调式: 若干个音,按照某种规则排列起来,就是调式,调式是一个非常大,非常抽象的概念,调式这两个字是一个统称,当明确了 若干个音 到底有几个音,某种规则到底是什么规则之后&#xff0c…

刚拿到的《HarmonyOS应用开发者高级认证》,全网整理的题目,将近300题,100%通过

刚拿到《HarmonyOS应用开发者高级认证》,现在把题目和答案分享一下,这些题目是我根据其他网站整理的,宁滥勿缺,有个别题目是重复的,抽半天时间看一下,应该是稳过的。当然建议还是先跟着文档学一下鸿蒙或者看…

【UE5.1】使用MySQL and MariaDB Integration插件——(4)修改、插入、删除数据

目录 效果 步骤 一、修改 二、插入、删除 在上一篇博客(【UE5.1】使用MySQL and MariaDB Integration插件——(3)表格形式显示数据)基础上继续实现修改、插入和删除数据库数据的功能 效果 修改数据: 插入数据&…

【YOLO系列PR、F1绘图】更改v5、v7、v8(附v8训练、验证方式),实现调用val.py或者test.py后生成pr.csv,然后再整合绘制到一张图上(使用matplotlib绘制)

目录 1. 前提 效果图2. 更改步骤2.1 得到PR_curve.csv和F1_curve.csv2.1.1 YOLOv7的更改2.1.1.1 得到PR_curve.csv2.2.1.2 得到F1_curve.csv 2.1.2 YOLOv5的更改(v6.1版本)2.1.3 YOLOv8的更改(附训练、验证方式) 2.2 绘制PR曲线 …

在CSDN创作了6个月,我收获了什么?文末送书~

作者主页:阿玥的小东东主页! 正在学习:python和C/C 期待大家的关注哦 目录 一次很好的机会,让我开始了CSDN之旅 首先来看看我的几位领路人 创作动力 1W粉丝 在CSDN我收获了什么? 很高的展现量 认证创作者身份 社…

Linux 网络操作命令FTP

FTP命令 引言 文件传输协议(FTP)是一种用于在网络上进行文件传输的协议。在Linux系统中,FTP可以作为一个非常有用的工具来上传、下载和管理文件。本文将介绍如何在Linux系统中安装FTP服务器,以及如何使用FTP客户端进行文件传输。…

RabbitMQ进阶学习

在之前的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但是大家思考一下,如果这里MQ通知失败,支付服务中支付流水显示支付成功,而交易服务中的订…

充电器进阶,原边恒流,单片机控制小电流(预充电)的方案

前言 很多充电器,为了能控制电流输出,也就是充电时需要有小电流、大电流的情况,都会用副边及单片机进行控制,但因为是副边控制,需要一个比较器、一个二极管、若干电阻、若干电容,整体BOM成本可能多了三毛钱…

VUE 项目 自动按需导入

你是否有这样的苦恼,每个.vue都需要导入所需的vue各个方法 unplugin-auto-import 库 Vite、Webpack和Rollup的按需自动导入API 本章提供Vite、Webpack中使用说明 1. 安装 npm i -D unplugin-auto-import 2. config.js 配置文件内追加配置 2.1 Vite // vite.conf…

用Nest实现对数据库的增删改查~

概述 为了与 SQL和 NoSQL 数据库集成,Nest 提供了 nestjs/typeorm 包。Nest 使用TypeORM是因为它是 TypeScript 中最成熟的对象关系映射器( ORM )。因为它是用 TypeScript 编写的,所以可以很好地与 Nest 框架集成。 TypeORM 提供了对许多关系数据库的支…

问题总结笔记

1.向量旋转 问题: 将一个向量旋转90 方法:旋转矩阵 FVector FrontDir EndMousePoint - Point; FrontDir.Normalize(); FVector Left FVector(-FrontDir.Y, FrontDir.X, 0); Verties.Add(Point Left * (WallWedith / 2)); Verties.Add(FVector(Vertie…

C语言 | Leetcode C语言题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; int searchInsert(int* nums, int numsSize, int target) {int left 0, right numsSize - 1, ans numsSize;while (left < right) {int mid ((right - left) >> 1) left;if (target < nums[mid]) {ans mid;right mid - …

Ubuntu Server 20.04 LTS 64bit安装ftp服务

1.安装vsftpd sudo apt install vsftpd2.配置vsftpd sudo vim /etc/vsftpd.conf write_enableYES # 启用任何形式的FTP写入命令&#xff0c;即可以修改文件local_umask022 # 本地用户创建文件的 umask 值&#xff0c;默认是被注释的connect_from_port_20YES # 针对 PORT 类型…

01_Nginx

文章目录 NginxNginx的核心功能Nginx的优势Nginx常用指令Nginx配置文件Nginx的核心功能&#xff1a;反向代理 Nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子…

《大话西游2》本人收集的十二个单机版游戏,有详细的视频架设教程,云盘下载

《大话西游2》是一款经典的大型多人在线角色扮演游戏&#xff0c;也是一款国风经典的游戏。 有能力的可以架设个外网&#xff0c;让大家一起玩。 《大话西游2》本人收集的十二个单机版游戏&#xff0c;有详细的视频架设教程&#xff0c;值得收藏 下载地址&#xff1a; 链接&…

色彩空间转换在AI去衣技术中的应用与探索

在人工智能&#xff08;AI&#xff09;的广阔领域中&#xff0c;图像处理和计算机视觉技术一直占据着举足轻重的地位。其中&#xff0c;AI去衣技术作为一种新兴的图像处理技术&#xff0c;近年来受到了广泛关注。在AI去衣的实现过程中&#xff0c;色彩空间转换技术发挥着至关重…

信息系统项目管理师0057:运维管理(4信息系统管理—4.2管理要点—4.2.2运维管理)

点击查看专栏目录 文章目录 4.2.2运维管理1.能力模型2.智能运维4.2.2运维管理 IT运维是组织IT服务中关键的一种类型。随着组织IT建设的不断深入和完善,信息系统运维已经成为了各行各业各组织管理者和IT团队普遍关注的问题。IT运维是指采用IT手段及方法,依据服务对象提出的服务…

visionpro_对比工具_CogPatInspectTool

CogPatInspectTool CogPatInspectTool工具使用PatMax检测缺陷(缺陷被定义为运行期间图像中超出正常预期的图像差别的任何变化)&#xff0c;缺陷可能是物体遗失&#xff08;阻塞&#xff09;或者多余&#xff08;杂乱&#xff09;, 原理是通过PMAlign工具实现,用训练图片和当前…

Github账号注册

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

轮转数组(Leedcode)的题目

题目&#xff1a;给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步…