提到面向对象不得不提到面向过程,面向过程是一件事该怎么做,面向对象是一件事该有谁来做,“谁“就是对象,至于怎么做就是对象的事情,一群对象合力将事情完成。
面向对象主要思路是把问题(业务,需求,代码等)看做一类一类的事物。每类事物定义好以后,各自有不同的属性、方法。
面向对象有三个特征:封装,继承,多态。
(1)封装:封装有两个作用,一个是将不同的小对象封装成一个大对象,另一个是把一部分内部属性和功能对外界屏蔽。例如一辆汽车,他是一个大对象,它由发动机、底盘、车身和轮子等这些小对象组成。在设计时可以先对这些小对象进行设计,然后小对象之间通过相互联系确定各自大小等方面的属性,最后就可以安装成一辆汽车。
(2)继承:
继承性:不同类的事物可能会有相同的属性方法,又可以把它们剥离出来,定义一个新类型,成为这些类事物的父类,这些类事物是这个新类型的子类,子类里只定义各自不同的属性和方法就可以了,这就是继承。换句话说,继承是子类自动共享父类数据结构和方法的机制。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
子类只继承一个父类的数据结构和方法称为单重继承,子类继承了多个父类的数据结构和方法则称为多重继承。
(3)多态:
多态性是指相同的行为可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以适合自身的方式去响应共同的消息。