Python——面向对象编程(类和对象)2

目录

私有属性和私有方法

01.应用场景及定义方式

02.伪私有属性和私有方法

 继承

1.1继承的概念、语法和特点

1.继承的语法:

2.专业术语:

3.继承的传递性

1.2方法的重写

1.覆盖父类的方法

2.对父类方法进行扩展

关于super

1.3 父类的私有属性和私有方法

多继承

2.1多继承的使用注意事项


私有属性和私有方法

01.应用场景及定义方式

应用场景:

        1.在实际开发中,对象某些属性或方法可能只希望在对象的内部被使用。而不希望在外部被访问到

        2.私有属性就是对象不希望公开的属性

        3.私有方法就是对象不希望公开的方法

定义方法:

        在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法。

02.伪私有属性和私有方法

        1.在给属性,方法命名时,实际是对名称做了一些特殊处理,使得外界无法访问到。

        2.处理方式:在名称前加上_类名 => _类名_名称

ps:在日常开发中,不要使用这种方式,访问对象的私有属性或私有方法。

 继承

继承分为单继承和多继承

面向对象的三大特性:

        1.封装根据职责属性方法封装到一个抽象的类中。

        2.继承实现代码的重用,相同的代码不需要重复的编写。

        3.多态不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度

 

1.1继承的概念、语法和特点

继承的概念子类拥有父类所有方法和属性。 

1.继承的语法:

        1.子类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发。

        2.子类中应该根据职责,封装子类特有的属性和方法

2.专业术语:

        1.Dog类是Animal类的子类,Animal类是Dog类的父类,Dog类从Animal类继承。

        2.Dog类是Animal类的派生类,Animal类是Dog类的基类,Dog类从Animal类派生。

3.继承的传递性

        1.C类从B类继承,B类又从A类继承。

        2.那么C类具有B类和A类的所有属性和方法。

        子类有用父类以及父类的父类中封装的所有属性和方法

1.2方法的重写

1.子类拥有父类的所有方法和属性

2.子类继承自父类,可以直接享受父类中已经封装好的方法,不需要再次开发。

应用场景:当父类的方法实现不能满足于子类需求时,可以对方法进行重写

重写父类方法有两种情况:

        1.覆盖父类的方法。

        2.对父类方法进行扩展。 

1.覆盖父类的方法

如果在开发中,父类的方法实现和子类的方法实现完全不同,就可以使用覆盖的方式在子类中重新编写父类的方法实现

具体的实现方式就相当于在子类中定义了一个和父类同名的方法并且实现。

 重写之后,在运行时,只会调用子类中重写的方法,而不再会调用父类封装的方法

2.对父类方法进行扩展

如果在开发中,子类的方法实现中包含父类的方法实现(父类原本封装的方法实现是子类方法的一部分

就可以使用扩展的方式:

        1.在子类中重写父类的方法。

        2.在学要的位置使用super().父类方法来调用父类方法的执行。

        3.代码其他的位置针对子类的需求,编写子类特有的代码实现

关于super

        1.在python中super是一个特殊的类

        2.super()就是使用super类创建出来的对象。

        3.最常使用的场景就是在重写父类方法时,调用在父类中封装的方法实现

1.在开发时,父类名和super()两种方式不要混用。

2.如果使用当前子类名调用方法,会形成递归调用,出现死循环

1.3 父类的私有属性和私有方法

1.子类对象不能在自己的方法内部、直接访问父类的私有属性私有方法

2.子类对象可以通过父类公有方法间接访问到私有属性或私有方法

        私有属性、方法时对象的隐私,不对外公开,外界以及子类都不能直接访问。

        私有属性、方法通常用于做一些内部的事情。

1.B的对象不能直接访问_num2属性

2.B的对象不能在demo方法内访问_num2属性

3.B的对象可以在demo方法内,调用父类的test方法

4.父类的test方法内部,能够访问_num2属性和_test方法 

多继承

子类可以拥有多个父类,并且具有所有父类的属性和方法

例如:孩子会继承自己父类母类特性

2.1多继承的使用注意事项

提示:开发时,应该尽量避免这种容易产生混淆的情况!——如果父类之间存在同名的属性或者方法,应该尽量避免使用多继承。

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

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

相关文章

树状数组基础知识

lowbit: lowbit(x)x&(-x) 树状数组: 树状数组的功能: 数组 在O(1)的时间复杂度实现单点加: 在O(lng n)的时间复杂度实现查询前缀和: 树状数组的定义: 查询前x项的和操作: ll query(int x){ll s0;f…

JavaScript懒加载图像

懒加载图像是一种优化网页性能的技术,它将页面中的图像延迟加载,即在用户需要查看它们之前不会立即加载。这种技术通常用于处理大量或大尺寸图像的网页,特别是那些包含长页面或大量媒体内容的网站。 好处 **1. 加快页面加载速度&#xff1a…

SCI一区TOP|徒步优化算法(HOA)原理及实现【免费获取Matlab代码】

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年,SO Oladejo受到徒步旅行启发,提出了徒步优化算法(Hiking Optimization Algorithm, HOA)。 2.算法原理 2.1算法思想 HOA灵感来自于…

项目进度管理(信息系统项目管理师)

定义活动的输出:活动清单、活动属性、里程碑清单定义活动的输入包括进度管理计划、范围基准、事业环境因素、组织过程资产定义活动的工具与技术包括专家判断、分解、滚动式规划、会议分解是一种把项目范围和项目可交付成果逐步划分为更小、更便于管理的组成部分的技…

【pearcmd】通过pearcmd.php 进行GetShell

https://cloud.tencent.com/developer/article/2204400 关于PHP 配置 register_argc_argv 小结 的一些研究文章。 应用例题 [NewStarCTF 2023 公开赛道]Include &#x1f350; <?phperror_reporting(0);if(isset($_GET[file])) {$file $_GET[file];if(preg_match(/flag|l…

部署LVS-DR 群集

1 LVS-DR 集群 LVS-DR &#xff08;Linux Virtual Server Director Server ) 工作模式&#xff0c; 是生产环境中最常用的一种工作模式 1.1&#xff1a;LVS-DR工作原理 LVS-DR 模式&#xff0c; Director Server 作为群集的访问入口&#xff0c; 不作为网关使用&#xff0c;…

7.4总结

今天写了几道题目 最近&#xff0c;一年级学生马克西姆学习了科拉兹猜想&#xff0c;但他在讲课时没有太注意&#xff0c;所以他认为猜想中提到了以下过程&#xff1a; 有一个变量 $$$x$$$ 和一个常数 $$$y$$$ 。下面的操作要执行 $$$k$$$ 次&#xff1a; - 将 $$$x$$$ 增加…

Axure教程:App侧边抽屉菜单交互制作

今天给大家示范一下抽屉菜单在Axure中的做法。在抽屉式菜单中&#xff0c;要实现两个交互效果&#xff0c;分别是&#xff1a; 交互一 抽屉菜单中1、2级菜单项的伸缩效果 实现逻辑&#xff1a;设置动态面板的切换状态及“推动/拉动原件”实现 交互二 菜单项的选中状态切换 …

2025年中国国际新能源汽车技术零部件及服务展览会

中国国际新能源汽车技术零部件及服务展览会&#xff0c;从设计到制造、从使用到服务&#xff0c;精准“链”接新能源汽车全产业链的技术供应商和汽车制造商&#xff0c;专业面向新能源造车供应链的行业盛会。2024展会回顾&#xff1a;在展会的3天里&#xff0c;有62家车企核心供…

6种ETL计算引擎介绍

目录 一、ETL计算引擎定义 二、ETL计算引擎的功能和特性 三、6种ETL计算引擎 1、MapReduce 2、Tez 3、Spark 4、Flink 5、ClickHouse 6、Doris 一、ETL计算引擎定义 ETL&#xff08;Extract, Transform, Load&#xff09;计算引擎是用于执行ETL过程中数据转换阶段的关键组件之一…

分布式计算、异构计算与算力共享

目录 算力 算力共享的技术支撑 云计算技术 边缘计算技术 区块链技术 分布式计算、异构计算与算力共享 分布式计算:计算力的“集团军作战” 异构计算:计算力的“多兵种协同” 算力共享:计算力的“共享经济” 深入融合,共创计算新纪元 算力共享对科研领域的影响 …

stm8玩耍日记1

写在前面&#xff0c;如题所示&#xff0c;这是一个stm8L051F3的玩耍记录。 环境使用的是IAR for stm8&#xff0c;使用stlink v2作为调试下载器&#xff0c;跟着st中文论坛的一个大佬的教程学习的。 整体配置下来&#xff0c;点亮了led&#xff0c;感觉和stm32的开发差不多&…

java项目自定义打印日志,打印请求方式,参数用时等

1.相关依赖 <!-- 私人工具包 --><dependency><groupId>cn.changeforyou</groupId><artifactId>location</artifactId><version>1.13-SNAPSHOT</version></dependency><!-- hutool工具依赖 --><dependency>…

路由器的ip地址与网关的区别是什么

在网络世界中&#xff0c;路由器扮演着至关重要的角色&#xff0c;它负责数据的传输和网络的互联。而在路由器的设置中&#xff0c;有两个常见的概念&#xff1a;IP地址和网关。那么&#xff0c;路由器的IP地址与网关的区别是什么&#xff1f;下面与虎观代理小二一起了解一下吧…

HQ-SAM

不建议复现

前后端分离:四种开发模式与实践指南

前后端分离&#xff1a;四种开发模式与实践指南 什么是前后端分离 当业务变得越来越复杂或产品线越来越多时&#xff0c;原有的开发模式就无法满足业务需求了。 产品越来越多&#xff0c;展现层的变化越来越快、越来越多&#xff0c;此时应该进行前后端分离的分层抽象&#…

MySQL数据恢复(适用于误删后马上发现)

首先解释一下标题&#xff0c;之所以适用于误删后马上发现是因为太久了之后时间和当时操作的数据表可能会记不清楚&#xff0c;不是因为日志丢失 1.首先确保自己的数据库开启了binlog&#xff08;我的是默认开启的我没有配置过&#xff09; 根据这篇博客查看自己的配置和自己…

线段树求区间最值问题

引言 今天主要还是练了两道题&#xff0c;是有关线段树如何去求一个区间内的最值问题的&#xff0c;我们可以用线段树来解决。 对应一个无法改变顺序的数组&#xff0c;我们想要去求一个区间内的最值&#xff0c;假设有n个结点&#xff0c;m次询问&#xff0c;暴力的解决办法…

Spring Bean生命周期

Bean生命周期&#xff1a; 创建 Bean 的实例&#xff1a;Bean 容器首先会找到配置文件中的 Bean 定义&#xff0c;然后使用 Java 反射 API 来创建 Bean 的实例。 Bean 属性赋值/填充&#xff1a;为 Bean 设置相关属性和依赖&#xff0c;例如Autowired 等注解注入的对象、Value…

怎样将word默认Microsoft Office,而不是WPS

设置——>应用——>默认应用——>选择"word"——>将doc和docx都选择Microsoft Word即可