面向对象和面向过程

说到面向对象不得不说的三个特点

封装继承和多态

比如用计算器来说

假如目前只是需要加法

面向过程就是直接把加法的代码里写进去

面向对象会把计算器单独作为一个文件

然后把加法单独写一个方法

然后后来有的地方需要新增一个减法的功能

面向过程就会在当前的地方直接把减法的写进去

面向对象只需要在建一个文件继承原来的文件再加一个方法就行了

后来又有其他地方用到了加法

面向过程又写了一遍重复的加法代码

而面相对象直接调用之前的就行了

这个叫封装

继承

你写了一个计算器

但是不想让别人看源代码

打包成静态库

但是别人想在你的上面增加新的方法

如果是面向过程的话就不能改

但是面向对象的话就可以

直接继承你的类就行了

还可以增加新的方法

或者重写你的老的方法

多态

比如我定义一个除法

有的除数是正数希望结果也是整数

有的除数是小数希望结果是小数

那我就可以写两个名字一样的方法

一个参数是小数一个参数是整数

当你传整数的时候系统就会走整数的方法

当你传小数的时候就会走小数的方法

方法名字不用改变

要是面向过程的话只能更绝方法名字判断

面向对象可以根据参数判断自动调用