什么是面向对象?

server/2024/9/25 7:45:05/

谈到面向对象,我们不得不说到面向过程。因为面向对象就是从面向过程过渡而来的。

面向过程:就是将一个大的任务分成一条条小的步骤,这些步骤由一个个函数来完成。

而面向对象呢,更加注重这个任务中的参与者,需求里有哪些对象,这些对象完成哪些任务。所以将这个任务拆解成一个个对象和模块,提高了代码的维护性和拓展性。

谈到面向对象我们又不得不提到面向对象的三大特性:封装,继承,多态。

封装:使用访问修饰符修饰,例如public,private。将内部实现细节隐藏,对外只提供公共的访问方法。这样的好处就在于,隐藏了内部实现细节,提高安全性,对外提供公共访问方法,提高代码复用性。封装的意义就在于,隐藏了实现细节,对外的调用者来说是透明的,调用者无需知道内部实现方式,只需要知道这个方法是干什么的就好了。

继承:继承是子类使用extends关键字去继承父类的关系。继承主要用途就是将子类中共有的方法抽取到父类中,比如说共有的属性和方法,更大的提高的代码复用程度。

继承的好处:1,想要使用这些属性和方法的时候,直接调用父类的即可,无需再重新定义,更大程度的提高了代码的复用性。

2,无需再写很多冗余代码,如果需要个性化定义子类方法,在子类中去重写父类方法即可。

多态:多态指同一行为具有不同表现形式和形态的能力。在Java中就是用父类表示子类,同一个父类可以表示不同的子类,父类就有不同状态。

多态存在的三个必要条件:1,继承;2,重写;3,父类引用指向子类对象。

但是多态存在缺点:就是子类向上转型,就无法调用子类方法和属性。处理方法:强转。

使用instanceof(Java中的一个双目运算符)判断实际类型,然后进行强转,否则会报错。


http://www.ppmy.cn/server/23322.html

相关文章

区块链钱包开发——专业区块链开发

随着区块链技术的发展,钱包开发成为了一项至关重要的任务。本文将探讨区块链钱包开发的重要性,分析当前面临的挑战,并展望未来的发展趋势。 一、区块链钱包概述 区块链钱包是一种用于存储和管理数字货币的软件工具。它为用户提供了一个安全的…

【EMQX】使用websocket订阅EMQX数据

需求:某平台希望通过 websocket 来订阅 EMQX平台上的某些 Topic数据进行处理 1、EMQX 服务配置 前提是EMQX服务正常安装运行了,如果EMQX服务未安装的话,详见以下文章关于如何安装部署服务: 搭建自己的MQTT服务器、实现设备上云(W…

在Linux中eth0旁边的lo是什么

2024年4月24日,周三晚上 在Linux中,eth0 和 lo 分别代表不同的网络接口。 eth0 通常是指计算机上的以太网接口,用于连接到局域网或互联网。eth0 可能是通过以太网线连接到路由器或交换机的网络接口,用于进行网络通信。lo 是指本地…

clickhouse与oracle传输数据

参考 https://github.com/ClickHouse/clickhouse-jdbc-bridge https://github.com/ClickHouse/clickhouse-jdbc-bridge/blob/master/docker/README.md clickhouse官方提供了一种方式,可以实现clickhouse与oracle之间传输数据,不仅仅是oracle&#xff0…

SAP-ERP TM运输管理模块详解-3

9、定义采购数据结算 事务代码及配置路径: TCODE: SPRO 路径:IMG > 后勤执行 > 运输 > 装运成本 > 结算 > 分配采购数据。详见图9-1。 配置路径截图: 、 如图9-2所示,配置根据计划运输点Z001装运成本类型Z001…

[论文笔记]SEARCHING FOR ACTIVATION FUNCTIONS

引言 今天带来另一篇激活函数论文SEARCHING FOR ACTIVATION FUNCTIONS的笔记。 作者利用自动搜索技术来发现新的激活函数。通过结合详尽的搜索和基于强化学习的搜索,通过实验发现最佳的激活函数 f ( x ) x ⋅ sigmoid ( β x ) f(x) x \cdot \text{sigmoid}(βx…

分布式事务Seata<XA模式、AT模式>解决方案思路(针对多数据源、分库分表、微服务、微服务分库分表4种场景)

seata的xa的方式解决 保证强一致性 原理说明: 1.启动seata服务器TC(控制台7091可以查看) 2.启动spring项目 初始化TM RM,实际上TM和RM注册到TC中 3.浏览器访问执行方法,TM向TC请求开启全局事务, 返回一个全…

Python-------实现人生重开模拟器

人生重开模拟器 实现思路序言一、设置初始属性1.游戏标题2.属性初始化 二、设置角色性别三、设置角色出生点四、针对每一年的岁数,自动生成人生经历总结 实现思路 1.设置初始属性 2.设置角色性别 3.设置角色出生点 4.针对每一年的岁数,自动生成人生经历序言 在前面…