面向对象的三个基本特征是:封装、继承、多态。个人觉得这三点其实我们知道了以后会对以后我们的编程会大有帮助,在此我就浅淡下,为什么会想写这篇文章,因为我的一个学长面试的时候就被问到了这个问题,我个人对这个问题的理解是。
何谓封装,就是好比我们用户在使用QQ的时候,其实包括发消息,刷空间也好都只是调用它封装好的函数,而里面实际的数据我们是无法看到了,而且我们也没有必要看到。所以这就是封装,可以把成员变量定义为私有的变量,使外界无法访问,这样的话其实会具有更好的安全性,不然人人都可以获取内部的数据,那人人都可以修改这个数据了。
何谓继承,其实我们都知道C++中使用最多结构就是类,其实继承是一个在我们的世界中都是广泛存在的,就好比一辆汽车,他可以是运输汽车,可以是专用汽车,运输汽车又分为客车和货车,专用汽车分为消防车,洒水车,毫无疑问其实不管是消防车还是客车都是可以跑的,他们都具有汽车的共性,而消防车可以拿来灭火,客车可以用来带人,他们之间又有着各自的特性相比较汽车这个笼统的说法而言。其实这就是继承,那为什么C++中用继承这个属性,因为比如说我们汽车可以跑我们需要写一个关于这个的函数代码,而我们也要实现消防车和客车的一样的函数,那我们就要写三次,会让代码看着很长,所以这个时候就有了继承,可以让我们的代码变得简洁。
何谓多态,其实多态的话就是同一件事物作用于不同的对象可以有好几种不同的响应操作,我们可以用继承、方法重载、运算符重载、虚函数、抽象类等都可以实现多态性,就好比同样继承一个父类中的一个方法,我们可以在子类当中修改该方法,让子类在调用该方法的时候出现不一样的响应操作。