面向对象将现实世界的所有事物都看作对象,根据这些事物的本质特点和相互关系,把他们抽象为一个个具体的类,和事物是构成世界的基本单元一样,类和对象是构成面向对象程序的基本构成单元。这样设计的好处是将软件系统设计得和客观世界更加相识,更符合人类的逻辑和思维。
每个类里面由成员变量和成员方法组成,成员变量对应的是现实世界中事物的属性,比如人的身高、年龄、体重等信息,成员方法对应现实世界对象的行为,比如人的吃饭、睡觉、跑步等行为。
面向对象的三大特征
面向对象的三个特征:封装、继承、多态
封装
封装是指将对象的实现细节隐藏起来,通过一些公用的方法来暴露该对象的功能。
继承
继承是面向对象实现软件复用的手段,对应现实世界的父子关系。当子类继承父类,子类作为一种特殊的父类,将直接获取到父类的属性和方法。
多态
多态是指子类对象可以直接赋值给父类的引用,但使用父类引用时,运行状态仍然是子类的行为特征。当有多个子类继承同一父类时,这时候使用父类引用,将产生不同的行为,具体行为得看赋值给父类变量的子类行为。
关于抽象
虽然抽象是面向对象程序设计的重要组成部分,但它不属于面向对象的三大特征,因为任何程序设计都是对现实世界的抽象,上升一个高度来看,人的思维方式本来就是抽象的。抽象是指忽略一个主题中与当前问题无关的一些属性,只考虑我们关心的内容。
类
类就是对具有相同属性、共同方法的对象的抽象,对象是类的实例。类是整个软件系统中最小的程序单元。类的封装性是指类将各种信息细节隐藏起来,对外通过公共的方法来暴露该类对外所提供的功能,从而提高类的内聚性、降低不同对象间的耦合性。
接口
与类对比来看,类是对某一类事物的抽象,而接口是对某一类行为的抽象。