一、面向对象与面向过程的区别?
面向过程 === 把大象放进冰箱,第一步开冰箱,第二步将大象放进去,第三步关冰箱门
面向对象 === 把冰箱看成是一个对象,把大象也看成是一个对象,通过操作大象和冰箱这两个对象,完成将大象放入冰箱的过程
二、面向对象三大基本特征
面向对象的三个基本特征是:封装、继承、多态。
1、封装
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
2、继承
一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
3、多态
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。
多态
多态存在要有3个必要条件:继承、方法重写、父类引用指向子类对象。
三、面向对象的5大基本原则
单一职责原则、开发封闭原则、依赖倒置原则、接口隔离原则、Liskov替换原则。
1、单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。简而言之,就是功能要单一。
2、开发封闭原则
软件实体(类,方法等等)应该可以扩展,但是不能修改。
对于扩展是开放的。
对于修改是封闭的。
3、依赖倒置原则
简单说就是,我们要针对接口编程,而不要针对实现编程。
4、接口隔离原则
使用多个专门的接口比使用单一的总接口要好。
5、里氏替换原则
类型必须能够替换掉它们的父类型。简单地说,这是因为子类型继承了父类,所以子类可以以父类的身份出现。