面向对象编程思想之(三)面向对象编程的特点

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。对同类对象抽象出其共性,形成类。类中的大多数数据只能用本类的方法进行处理。类利用一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。类是面向对象编程中的最核心技术,一切皆为对象,这就是面向对象的大概思想。面向对象编程方法具有封装性、继承性和多态性等特点。

封装性

类是属性和方法的集合,为了实现某项功能而定义,开发人员并不需要了解类体内每句代码的具体含义,只需要通过对象来调用类内某个属性即可实现某项功能,这就是类的封装性。封装是一种信息隐蔽技术,用户只能见到对象封装接口上的信息,对象内部对用户是隐蔽的。

例如,一台电脑就是一个封装体。从设计者的角度来讲,不仅需要考虑内部各种元器件,还要考虑主板、内存、显卡等元器件的连接与组装;从使用者的角度来讲,只须关心其型号、颜色、外观、重量、电源开关按钮、显示器的清晰度、键盘灵敏度等,根本不用关心其内部构造。

因此,封装的目的在于将对象的使用者与设计者分开,使用者不必了解对象行为的具体实现,只需要用设计提供的消息接口来访问该对象。

继承性

继承是面向对象程序设计的最重要的特性之一。一个类可以从另一个类中继承其全部属性和方法,这就是说,这个类拥有它继承的类的所有成员,而不需要重新定义,这种特性被称为对象的继承性。继承也被称为派生,其中,被继承的类称为基类或父类,继承的类称为派生类或子类。

例如,灵长类动物包括人类和大猩猩,那么灵长类动物就称为基类或父类,具有的属性包括手和脚(其他动物类称为前肢和后肢),具有的行为(方法)是抓取东西(其他动物类不具备),人类和大猩猩也具有灵长类动物所定义的所有属性和行为(方法),因此,在人类中就不需要重新定义这些属性和行为(方法),只需要采用继承性,让人类和大猩猩都继承灵长类动物即可。

继承性的优势在于降低了软件开发的复杂性和费用,使软件系统易于扩充。

多态性

继承性可以避免代码的重复编写,但在实际应用中,又存在这样的问题:派生类里的属性和方法较基类有所变化,需要在派生类中更改从基类中自动继承来的属性和方法。多态性可以解决上述问题,多态性即在基类中定义的属性或方法被派生类继承后,可以具有不同的属性和方法。

例如,假设手机是一个基类,它具有一个称为拨打电话的方法,也就是说,一般的手机打电话的方法都是输入号码后按拨号键即可完成,但是一款新的手机拨号方式为语音拨号,与一般的拨号方法不同,于是只能通过改写基类的方法来实现派生类的拨号方法。

posted @ 2014-03-06 20:05  梦烬  阅读(908)  评论(0编辑  收藏