面向对象技术的三大机制
封装、继承、多态是面向对象技术的三大机制,其中封装是基础,继承是关键,多态是延伸。 1.封装 封装的对象是数据和方法,支持数据封装就是支持数据抽象。在c++中,类是支持数据封装的工具,对象则是数据封装的实现。没有封装,就没有面向对象技术。 另外,封装还提供一种对数据访问严格控制的机制。因此,数据将被隐藏在封装体中,该封装体通过操作接口与外界交换信息。 对象被说明为给定类的量。每个给定类的对象包含有这个类所规定的若干个私有成员和公有成员以及保护成员。 在C语言中可以定义结构,但这种结构只包含数据,而不包含函数。C++中的类是数据和函数的封装体。在C++中,结构可作为一种特殊的类,它虽然可以包含函数,但是它没有私有或保护的成员。 2.继承 类提供了说明一组对象结构的机制。借助于继承这一重要机制,已存在的类具有建立子类的能力,进而建立类的层次,扩充类的定义。 继承提供了创建新类的一种方法,一个新类可以通过对已有类进行修改和扩充来定义。从一个类继承定义的新类,将继承已有类的方法和属性,并且可添加不包含在父类中的新方法和属性。新类被称为已有类的子类,又称为派生类,已有类称为新类的父类,又称为基类。 C++中允许单继承和多继承,一个类可以根据需要生成派生类。 通过继承,实现代码重用,减少代码冗余,简化接口和界面。 3.多态 多态是指相同的语法结构可以代表不同类型的实体或者对不同类型的实体进行操作,即发出同样的消息被不同对象接收时导致完全不同的行为。 c++允许函数名和运算符重载,允许一个相同的标识符或运算符代表多个不同实现的函数,这是编译时的多态性。 C++中可以定义虚函数,通过定义虚函数来支持动态联编。动态联编是另一类重要的多态性,多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每一个子类可接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给子子类对象的消息的某种用法。这是执行时的多态性。 |