真正意义上的面向对象

简介: 真正意义上的面向对象

面向对象的基础

       面向对象的基础是抽象,为什么这样说呢?因为抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程,简单来说是把一些公共性和一致的事物放到一起,对应到计算机中是把属性和方法抽出来形成了一个类,这个类也就是封装。抽象是一个过程而封装是抽象后的一个产物。

面向对象的三大特征

       封装:封装即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。简单来说是把方法和属性放到一个类中,用来为其他类提供服务。

       继承:继承是指把一个事物的属性应用到自己这里来使用,对应到计算机中是一个类中的属性和方法和另一个类的属性方法一致但是方法的实现过程不一致,这时候就可以使用继承来减少重复代码的书写和资源的浪费。

       多态:是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果。多态和继承是成对出现的。有了继承就会产生父类和子类。在子类中继承到父类的方法可以通过不同的形式来实现。实现的结果就是多态的体现。

对面向对象的认识

       相信大家听到面向对象都很熟悉,但是谁又能真正理解什么的面向对象的。昨天通过听米老师的分享才发现自己之前理解的面向对象都是错误的,我们之前理解面向对象是将一件事情进行封装或者一个功能进行封装。这些都是对于整个过程的封装可以理解为直接是面向过程的思想,并没有体现出面向对象。

       面向对象实际是将一件事情进行拆分,将这件事情中所涉及到一些名词性的事物抽离出来形成对象。比如说拿打水这件事来说,其中涉及到打水人、打水工具、水和受水人等等都可以抽离出来形成对象,并不在乎打水的这个过程是什么样的。我们将抽离出来的这些对象可以进一步在做抽象,比如打水人和受水人都可以抽象为参与人。这样通过不断的抽象,所涉及到的类就会越来越少,能够服用和扩展的方面才会更多。


相关文章
|
7月前
|
缓存 监控 API
微店商品详情API接口实战指南:从零实现商品数据自动化获取
本文介绍了微店商品详情API接口的应用,涵盖申请与鉴权、签名加密、数据解析等内容。通过Python实战演示了5步获取商品数据的流程,并提供了多平台同步、价格监控等典型应用场景。开发者可利用此接口实现自动化操作,提升电商运营效率,降低人工成本。文中还总结了频率限制、数据缓存等避坑指南,助力开发者高效使用API。
|
存储 缓存 负载均衡
NGINX 性能调优的五大技巧
【8月更文挑战第27天】
363 5
|
安全 Java API
构建基于Spring Boot的REST API安全机制
构建基于Spring Boot的REST API安全机制
|
数据采集 存储 JavaScript
JS逆向案例:巨潮资讯数据采集
JS逆向案例:巨潮资讯数据采集
332 0
|
安全 微服务
十二.SpringCloud+Security+Oauth2实现微服务授权 - 资源服务器配置
SpringCloud+Security+Oauth2实现微服务授权 - 资源服务器配置
|
SQL 资源调度 关系型数据库
实时计算 Flink版产品使用问题之在使用Flink on yarn模式进行内存资源调优时,如何进行优化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
JSON 前端开发 Java
web前-JAVA后端 数据API接口交互协议
目前热门的主流web前端和Java后端数据技术架构:设备端和后台服务端,两者之间主要有两类的数据流和一类的控制流进行数据的交互。
web前-JAVA后端 数据API接口交互协议
|
Python
Python办公自动化之Excel转Word
Python办公自动化之Excel转Word
524 0
|
NoSQL Linux MongoDB
Linux下离线安装MongoDB
Linux下离线安装MongoDB
528 0
|
SQL JavaScript 前端开发
【Node.js实战】一文带你开发博客项目(API 对接 MySQL)
【Node.js实战】一文带你开发博客项目(API 对接 MySQL)
459 0