全部科目 > 程序员 >
2014年下半年 上午试卷 综合知识
第 45 题
知识点 多态   消息  
关键词 对象   多态   消息  
章/节 系统分析和设计基础知识  
 
 
不同的对象收到同一消息可以进行不同的响应,并且会产生完全不同的结果,这种现象称为多态,其实现由(45)支持。多态分为多种,(46)多态是指同一个名字在不同上下文中可代表不同的含义。
 
  A.  继承
 
  B.  封装
 
  C.  过载
 
  D.  覆盖
 
 




 
 
相关试题     面向对象的基本概念 

  第47题    2009年下半年  
采用具体的面向对象语言实现某类时,一般需要隐式或显式地指定该类的(47)。

  第46题    2014年下半年  
不同的对象收到同一消息可以进行不同的响应,并且会产生完全不同的结果,这种现象称为多态,其实现由(45)支持。多态分为多种,(46)多态是指同一个名字在不同上下文中可代表不同的含义。

  第46题    2020年下半年  
( )这两类事物之间祥在一般和特殊的关系。

 
知识点讲解
· 多态
· 消息
 
        多态
        在C++语言中,所谓多态性,即对同一条信息,不同对象将产生不同的相应操作。简言之,以多种形式在多个对象上进行操作(但接口相同)。多态性一般通过对象的继承关系来实现。
        在讲多态性实现之前,首先讨论一下成员函数重载和虚函数的概念。
        成员函数的重载是指在派生类中定义和其祖先类中相同的函数,即函数名、参数个数、参数类型都相同。虽然函数的重载一定程度上满足了多态性,但是函数重载实现多态性的前提是知道接收消息的具体对象。这不能满足在现实世界中,消息发送者在发送消息之前,并不需要知道具体接收者的要求。函数的重载只是静态地满足了多态性的要求。重载的子程序是一种特别的多态。
        虚函数是在类的成员函数定义前面加上关键字virtual。虚函数仅给出方法的定义而不给出方法体。含有虚函数的类叫作抽象类。抽象类具有如下特性:①由于抽象方法没有体,因此抽象类不能实例化;②抽象类的子类必须给出所继承的抽象方法的体。
        在C++语言中,多态是通过虚函数来实现的。如果一个基类的成员函数定义为虚函数,那么,它在所有派生类中也保持为虚函数,派生类中可以省略virtual关键字。要达到多态的效果,基类和派生类的对应函数不仅名字相同,而且返回类型、参数个数和类型也必须相同。在C++语言中,不允许用抽象类创造对象,它只能被其他类继承。要定义抽象类,就必须定义纯虚函数,它实际上是起到接口的作用。对虚函数的限制是:只有类的成员函数才可以是虚函数;静态成员函数不能是虚函数;构造函数不能是虚函数;析构函数可以是虚函数,而且我们常常将析构函数定义为虚函数。
        例如:A是基类,B是A的派生类。现有如下程序:
        
        输出结果为:
        1
        2
        2
        根据输出结果,即可知多态的实现机理了。
 
        消息
        消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务,一个消息通常包括接收对象名、调用的操作名和适当的参数。消息只告诉接收对象需要完成什么操作,但并不指示接收者怎样完成操作。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有