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

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

所谓继承:
是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(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定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

接口分离原则(the Interface Segregation Principle ISP)
模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

迪米特法则
迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。

面向对象三大基本特性相关推荐

  1. python面向对象三大基本特性_python面向对象之三大特性

    继承 先看个简单的例子了解一下继承. class Animal: #父类 def __init__(self, name, age, department): self.name=name self. ...

  2. 面向对象三大特性,五大原则

    以前一直认为程序中的类有使用到封装继承多态就是面向对象设计,其实不然 封装,继承,多态只是面向对象的三大特性,但是在设计程序的时候并不是说类的结构使用到了(或是体现出了)这三个特性就是面向对象, 其实 ...

  3. 【Python学习笔记】面向对象三大特性

    2019独角兽企业重金招聘Python工程师标准>>> ★面向对象:封装.继承和多态是面向对象的三大特点★ 面向对象编程简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元 ...

  4. python 面向对象(三大特性)

    python 面向对象(初级) (思维导图 ↑↑↑↑↑) 概述: 面向过程:根据业务逻辑从上到下垒代码. 函数式:将某功能代码封装至函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  5. [.net 面向对象编程基础] (13) 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  6. 【Python面试】 说说Python面向对象三大特性?

    往期面试题: 谈谈对 Python 和其他语言的区别? 说说 Python 解释器种类以及特点? 说说4种常用编码的区别? 废话不多说,开始今天的题目: 问:说说Python面向对象三大特性? 答:P ...

  7. python面向对象三大特性、类的约束、print带颜色输出及super补充

    面向对象三大特性.类的约束.print带颜色输出及super补充 简述: python面向对象的三大特性: 1.继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为 ...

  8. python面向对象三大特性_Python面向对象之多态原理与用法案例分析

    本文实例讲述了Python面向对象之多态原理与用法.分享给大家供大家参考,具体如下: 目标 多态 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则 继承 ...

  9. Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__

    一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...

最新文章

  1. 概要讲述SMTP, POP3和IMAP之间的区别和联系
  2. 什么是补码,怎么求补码
  3. python进阶项目设计_推荐系统进阶:设计和构建推荐系统流程综述(1)
  4. C++11 新增关键字decltype学习
  5. 无忧考吧python编译环境不存在_python:flake8找不到不存在的方法
  6. 搜索引擎优化不是网页标签优化
  7. java.lang包—对象基类Object
  8. 7.中文输入验证-原生JS
  9. 计算机桌面设置定时,如何设置可以每月自动变化的日历桌面?
  10. HDU 4422 The Little Girl who Picks Mushrooms(简单题)
  11. 数据结构与算法-字典的时间复杂度
  12. html条件查询的页面,如何在 url 中记录页面搜索条件
  13. python遇到的问题-Python常见问题
  14. linux查看是哪个端口,linux 查看哪个端口使用情况
  15. 百行代码解读阿里 AloT 芯片平台无剑 100!
  16. 百度语音识别最新资讯
  17. png图片转化为ico图标并保留透明背景方法
  18. DEVICE_ATTR_RW 宏分析
  19. 电商等一些互联网项目涉及到什么技术?
  20. 架构师成长之路(3)--如何成为架构师(方法)

热门文章

  1. IAR之IAR EWARM软件软件配置
  2. Java工程师考试题
  3. 计算机综合训练50题4,-计算机基础练习题-Excel部分50题.doc
  4. 约瑟夫问题(丢手绢问题)
  5. Java--->Ajax(上)
  6. CSAPP——Lab3——AttackLab
  7. python爬虫系列--lxml(etree/parse/xpath)的使用
  8. module.exports 和 exports的区别
  9. 数据结构-二叉树的顺序存储
  10. CDQ分治(二维CDQ 、三维CDQ+树状数组、四维CDQ+CDQ+树状数组)