什么是面向对象
面向对象、面向过程
面向对象的三大基本特征和五大基本原则
面向过程:一步步的实现问题,是一个具体化,实现化的概念
面向对象:是模型化的抽象出来的一个概念,实际上底层还是面向过程的一个实现
举个例子:
1、张三想要一件短袖,需要先买一块布,买一个剪子和针线,自己一步步做成衣服。这就是面向过程
2、李四同样想要一件短袖,他直接去商店:老板,来一件短袖。这就是面向对象,他不关心具体的过程,只需要有这个功能就行了,至于这个功能是怎么封装的,则又是另外一个故事。。
面向对象的三大基本特征
封装:把客观的事物封装成抽象的类。比如把短袖封装成一个类,短袖的颜色,大小,造型封装成类里面的参数
继承:子类拥有父类的全部特征和行为,是一个从普通到特殊的过程,java只支持单继承。比如短袖继承的父类是上衣
多态:继承后拥有的特性,父类定义的方法,在不同的子类中可以有不同的含义。比如上衣这个父类的某一个方法解开衣服,子类中该方法的定义可以是拉开拉链,也可以是解开扣子
面向对象的五大基本原则
单一职责原则:一个类最好只做一个事情,避免引起边界混淆
开放封闭原则:指一个模块在扩展性方面应是开放的,在更改性方面应是封闭的【引用】
里氏替换原则:子类应当可以替换父类,并出现在父类能够出现的任何位置【引用】
依赖倒置原则:高层模块不应该依赖底层模块,两者都应该依赖其抽象,不要依赖于具体实现
ISP接口隔离原则:模块间要通过抽象接口隔开,而不是通过具体的类强行耦合起来【引用】