面向对象程序语言的主要特征:抽象、封装、继承和多态。
1、抽象
? ? ? ?面向对象思想就是要求程序员将程序的每一部分看成是一个抽象的对象,即程序是由一组抽象的对象组成的。这些对象根据自身的相同特征进而可以抽象表示为一个类。
? ? ? ?例如,张三是一个人,我们把他看成是一个对象,李四也是一个人,我们把他看成是一个对象,王麻子也是一个人,我们把他看成是一个对象......他们都是具体的一个个对象,但是我们发现他们都具有相同的特征------他们都是人(能够直立行走和使用工具等),所以将他们抽象的看作一个类------人类。
? ? ? ?简单来讲,抽象就是将多个对象的共有特征进行提炼。
2、封装
? ? ? ?对于早期的软件设计,程序和数据相互混合,导致程序可读性很差,而且在添加新功能时修改程序比较困难。C++作为一种面向对象的编程语言,考虑到这一问题,将每个数据封装在各自的类中,而且又设置了三种权限(private(私有的)、protected(受保护的)和public(公有的)),保证了数据在使用过程中的安全性。
? ? ? 把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
? ? ? 简单来讲,封装就是对本对象的数据和方法进行包装。
3、继承
? ? ? ?继承,顾名思义就是在原有的基础上进行加工。继承概念的出现,对于软件设计来说十分有利,在修改或添加功能时,无需再次重头再来重写代码,仅是在现有基础上的简单加工。比如,我们正在研制一种新型共享单车,但是又不想重新编写原有的代码,所以将之前的共享单车看成是一个类(类1),再重新声明一个类(类2),继承类1的所有数据和方法,再在类2中修改或者增加新的功能数据方法即可。
? ? ? 简单来讲,继承就是新对象对原始对象的数据和方法进行复用。
具体参看博客:https://www.cnblogs.com/33debug/p/6666939.html
4、多态
? ? ? ? 对象在调用同名函数时发生了不同的行为或者结果,我们称这种现象为多态。比如,一个足球运动员在发出踢球这个动作之后,可能发生的结果有:
? ? ? ?1)球踢到观众席;
? ? ? ?2)球射在门框;
? ? ? ?3)球被守门员拦截;
? ? ? ?4)进球......
? ? ? 简单来讲,多态就是对象在执行相同函数名的函数出现的多种状态。
? ? ? 多态性可以概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,他是面向对象编程领域的核心概念。
?