面向过程:是指我们在编辑过程中将一个程序分为几个步骤来组成(就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以)
举个例子:比如我们洗衣服分为
(1)放衣服到洗衣机
(2)倒洗衣粉
(3)加水
(4)按动洗衣机
面对过程:
优点是:非常的直观,构成逻辑程序不复杂,效率高适合简单不复杂的程序
缺点:非常明显,不能继承和多态(比如我们买了一个新的洗衣机有新的功能,他是无法继承的,只能重新写进去,比较麻烦。多态:就是的指满足多种不同需求(比如同样是洗衣服,老婆喜欢用洗衣液,老公喜欢用洗衣服,那么我们只能在程序上进行修改也比较麻烦)
面向对象
同样是做洗衣服的事情我们NEW出两个需要做成这件事的两个对象(类)(同时这个类是拥有做这件事的不同属性的(所以才会有继承 ))
人:放衣服,人:放洗衣粉,人:加水
洗衣机:漂洗(方法);洗衣机:清洗(方法);洗衣机:甩干(方法)
因为人和洗衣机是对象,它可以拥有不同的属性
面向过程的对象
封装:面向过程,是将所有洗衣服的过程展现出来。几件衣服,加几勺洗衣粉,用多少睡。洗几分钟等,如果衣服数量发生改变,其他的程序需要重新,而面向对象,是将这个洗衣服的过程封装成一个类。(比如我们的洗衣机设定好衣服3件,洗衣粉就加一勺,加水12升,洗20分钟这个一种类在遇到三件衣服的时候我们直接调用这个类就可以完成,衣服5件,洗衣粉加2勺,加水20升,洗衣时间为35分钟,在遇到这种情况的时候我们就调用这个类,就是我们之前用到的if elst满足某种条件下去执行对应的程序)
继承:面向对象它是一个类,比如我们的洗衣机有很多功能,我买了一个新的洗衣机它有烘干的功能,我让我原来的洗衣机去继承这个功能,就是子类去继承父类(指小数据继承大数据)子类可以保留原本自己的属性,并且增加父类其他自己原本不拥有的属性。一般情况子类只能继承一个父类(在kotlin中可以通过super接口实现继承多个父类),父类继承子类(大数据继承小数据会丢失小数据没有的父类拥有的数据)
多态:因为可以拥有很多子类,比如我们在对象的定义上,if对象是Man。els执行的是放洗衣粉洗,if对象是woman,else执行的是放洗衣液洗,就是在不同的对象上调用不同的类的方法,得到不同属性的结果。