全部科目 > 系统集成项目管理工程师 >
2023年下半年 上午试卷 综合知识
第 20 题
知识点 继承   面向对象技术   实现方式  
章/节 信息系统建设与开发  
 
 
Color Printer Block Adminstered均继承父类Printer类中有print方法实现打印ColorPrinter中print方法能实现彩色打印效果,Color Printer Block Administered中print方法能实现黑白打印效果。print方法的这种实现方式体现了面向对象技术的( )
 
  A.  封装
 
  B.  多态
 
  C.  继承
 
  D.  复用
 
 




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

  第13题    2020年下半年  
( )是现实世界中实体的形式化描述,将实的属性(数据)和操作(函数)封装在一起。

  第15题    2017年下半年  
封装、继承和多态是面向对象编程的三大特征,在java 开发过程中有着广泛应用。以下关于它们的描述不正确的是: ( )。

  第20题    2023年下半年  
面向对象的基本概念中,( )没有体现在下图中


 
知识点讲解
· 继承
· 面向对象技术
· 实现方式
 
        继承
        继承表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的属性和操作。继承又可分为单继承和多继承,单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个的父类继承,Java是单继承的语言,而C++允许多继承。
        如类B继承了类A,则类B中的对象具有类A的一切特征,类B还可以有一些扩展。类A称为基类、父类或超类,类B称为类A的派生类或子类。
 
        面向对象技术
        在介绍面向对象软件测试之前,有必要先对面向对象技术的基本概念做一下简单介绍。
               对象和类
               面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心,以算法为驱动的话,那么面向对象的编程语言则是以对象为中心,以消息为驱动的。用公式表示,过程式编程语言为:程序=算法+数据;面向对象编程语言为:程序=对象+消息。
               在面向对象的程序设计中,类是其设计的核心,它实际是一种新的数据类型,也是实现抽象类型的工具,类是通过抽象数据类型的方法来实现的一种数据类型。类是对某一类对象的抽象;而对象是某一种类的实例,因此,类和对象是密切相关的。没有脱离对象的类,也没有不依赖于类的对象。
               封装、继承和多态性
               封装,把数据和操作结合成一体,使程序结构更加紧凑,同时避免了数据紊乱带来的调试与维护的困难;继承,增加了软件的可扩充性,并为代码重用提供了强有力的手段;多态性,使程序员在设计程序时可以对问题进行更好的抽象,易设计出重用性和维护性俱佳的程序。
               封装是将数据和操作数据的函数衔接在一起,构成的一个具有类类型的对象的描述。封装要求一个对象应具备明确的功能,并且有一个或几个接口以便和其他对象相互作用。同时,对象的内部实现(代码和数据)是受保护的,外界不能访问它们,只有对象中的代码才可以访问该对象的内部数据。对象的内部数据结构的不可访问性称为数据隐藏。封装简化了程序员对对象的使用,只需要知道输入什么和输出什么,而对类内部进行什么操作不必追究。
               例如,类Test(以C++为例):
               
               
               输出结果是16,对于main()里的操作,无法更改类Test中的Value值,这样保护了数据Value,实现了数据的隐藏。函数SetValue()和数据Value结合在一起操作,这就实现了封装。
               继承即可以从一个类派生另一个类。派生类(也称为子类)继承了其父类和祖先类的数据成员和成员函数。派生类可增加新的属性和新的操作,另外,派生类在继承的成员函数不合适时也可以放弃不用。
               例如,水果是基类,它具有好吃、营养等水果的基本特征;香蕉和苹果是水果的派生类,它们在继承水果类的一些特征的基础上,增加了各自的特征,如特殊的味道、形状等;红富士苹果和青苹果是苹果类的派生类,它们又增加了各自的新特征。如此继承设计,可以大大减少工作量。
               例如(C++程序),先设计水果类Friut。
               
               苹果类Apple需要与水果类Friut同样的成员函数void Eat和void Taste,另外增加了新的函数void Color和void Shape。在设计时,我们不需要重写void Eat和void Taste,只需要继承水果类即可,苹果类的实际代码如下。
               
               多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。多态性的实现,一般通过在派生类中重定义基类的虚函数来实现。
               如下例(C++程序),如果A是基类,B和C是A的派生类,基类中多态函数Test的参数是A的指针。那么Test函数可以引用A、B、C的对象如下。
               
               
               正是面向对象软件所独有的这些多态、继承、封装等新特点,使OO程序设计比传统语言程序设计产生错误的可能性更大,使得传统软件测试中的重点不再显得那么突出,也使原来测试经验和实践证明的次要方面成为了主要问题。例如,在传统的面向过程程序中,对于函数y=Func(x);你只需要考虑一个函数“Func()”的行为特点,而在面向对象程序中,你不得不同时考虑基类函数“Base::Func()”的行为和继承类函数“Derived::Func()”的行为。
               面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的,逐步将开发的模块搭建在一起进行测试的方法已不可能。而且,面向对象软件抛弃了传统的开发模式,对每个开发阶段都有不同于以往的要求和结果,已经不可能用功能细化的观点来检测面向对象分析和设计的结果。因此,传统的测试模型对面向对象软件已经不再适用。针对面向对象软件的开发特点,一种新的面向对象测试模型应需而生。
 
        实现方式
        IPSec可以在端系统或者安全网关中实现,也可以在现有的IP实现中集成IPSec,这种方法需要能够修改现有IP实现的源码;BITS(Bump In The Stack)实现方式是在已有的IP协议栈中实现IPSec,使之存在于IP协议和网络驱动器之间;BITW(Bump In The Wire)实现方式是在外部的加密机中实现IPSec,从而在两个路由器或两个主机之间形成安全隧道。
        IPSec的一个重要实现方式是基于VPN(Visual Private Network)的加密机制,由IPSec构成的加密IP隧道,提供了不同介质和地域网间的安全透明连接。



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

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