博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象三大基本特性,五大基本原则
阅读量:4596 次
发布时间:2019-06-09

本文共 1422 字,大约阅读时间需要 4 分钟。

三大特性是:封装,继承,多态  

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。

继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

 

五大基本原则 

单一职责原则SRP(Single Responsibility Principle)

是指一个类的功能要单一,只负责处理同一类的操作。强调的是职责的分离。

其核心的思想是:一个类,最好只做一件事,只有一个引起它变化的原因。低耦合、高内聚的体现

实例:

 

开放封闭原则OCP(Open-Close Principle) 

扩展性方面应该是开放的而在更改性方面应该是封闭的。封装变化、降低耦合,抽象和多态的应用

对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对类进行任何修改。

实例: 

 

里氏替换原则(the Liskov Substitution Principle LSP) 

子类应当可以替换父类并出现在父类能够出现的任何地方。继承的体现

实例: 

 

依赖原则(the Dependency Inversion Principle DIP)

具体依赖抽象,上层依赖下层。

假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类,而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口,这样就达到

了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。

实例: 

 

接口分离原则(the Interface Segregation Principle ISP) 

模块间要通过抽象接口隔离开,不通过具体的类关联,降低耦合度

如果类的接口定义暴露了过多的行为,则说明这个类的接口定义内聚程度不够好。换句话说,类的接口可以被分解为多组功能函数的组合,每一组都服务于不同的客户类,而不同的客户类可以选择使用不同的功能分组。

 实例: 

 

转载于:https://www.cnblogs.com/alex09/articles/4380115.html

你可能感兴趣的文章
hdu 3127(矩阵切割)
查看>>
hdu 1864(01背包)
查看>>
[stl] SGI STL的空间配置器
查看>>
【IIS】IIS中同时满足集成模式和经典模式
查看>>
使用DOM解析XML文档
查看>>
python函数参数传递总结
查看>>
java生成Https证书,及证书导入的步骤和过程
查看>>
iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
查看>>
LeetCode 661. Image Smoother
查看>>
(译文)MVC通用仓储类
查看>>
《操作系统》第5章:输入/输出(I/O)管理
查看>>
Python初探第一篇-变量与基本数据类型
查看>>
快速创建SpringBoot2.x应用之工具类自动创建web应用、SpringBoot2.x的依赖默认Maven版本...
查看>>
《剑指offer》字符串中的字符替换
查看>>
PHP学习笔记(11)初探PHPcms模块开发
查看>>
【剑指Offer】44、反转单词序列
查看>>
毕业设计《项目管理》总结01
查看>>
substr 方法
查看>>
Switch to strategy
查看>>
Part3_lesson1---ARM汇编编程概述
查看>>