1.唯一性。
每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。
在对象的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。
2.抽象性。
分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。
3.继承性。
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
通过类的继承关系,使公共的特性能够共享,提高了软件的重用性。
4.多态性(多形性) 。
多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。
从世界观的角度可以认为,面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的,不同对象之间的相互作用和通讯构成了完整的现实世界。
因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。
这样建立起来的系统才能符合现实世界的本来面目。
从方法学的角度可以认为,面向对象的方法是面向对象的世界观在开发方法中的直接运用。
面向对象与基于对象的区别:
1.通常“基于对象”是使用对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说“基于对象”没有继承的特点。
而“多态”表示为父类类型的子类对象实例,没有了继承的概念也就无从谈论“多态”。
2.现在的很多流行技术都是基于对象的,它们使用一些封装好的对象,调用对象的方法,设置对象的属性。
但是它们无法让程序员派生新对象类型。
他们只能使用现有对象的方法和属性。
3.当判断一个新的技术是否是面向对象的时候,通常可以使用后两个特性来加以判断。
“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象实现了“继承和多态”。