简答题

在类的通过复用的设计中,主要的继承关系有哪几种?试举例说明。

正确答案

在类的通过复用的设计中,主要的继承关系有两大类:
①配置:利用既存类来设计类,可能会要求由既存类的实例提供类的某些特性。通过把相应类的实例声明为新类的属性来配置新类。例如,一种仿真服务器可能要求使用一个计时器来跟踪服务时间。设计者不必开发在这个行为中所需的数据和操作,而是应当找到计时器类,并在服务器类的定义中声明它。
但如果使用既存类的内部表示来做为新类的内部表示的一部分,这是一种“针对实现”的继承方式,这种继承方式不好。例如,考虑使用继承来实现一个Circle类。Point类可支持Circle类的一部分实现。为了定义一个圆,我们只需要定义一个点和一个值,做为圆的圆心和半径。把Point当做子类,Circle类不但能得到由x和y提供的圆心,而且还能得到一个操作,让圆能够自由移动。但这样做,我们失去了抽象。
②演变:要开发的新类可能与一个既存类非常类似,但不完全相同。此时可以从一个既存类演变成一个新类,可以利用继承机制来表示一般化―特殊化的关系。特殊化处理有三种可能的方式。

如果新的概念是一个既存类所表示概念的一个特殊情况,特殊化运算可以从该既存类的定义产生新类的初始构造,这是典型的类继承的使用。既存类A的数据结构和操作可以成为新类B的一部分,如图(a)所示。既存类A的公共操作成为新类B的共有界面部分。
如果新类比软件库中那些既存类更一般,则新类B不具有既存类A的全部特性,一般化运算把两个类中共同的特性移到新的更高层的类中,高一层的类是B,我们将要设计它。原来的类A成为新类B的子类。如图(b)所示。
一个既存类A与我们设计的新类B共享概念的某一个部分,则两个概念的共同部分形成新类的基础,且既存类与新类两者成为子类,如图(c)所示。

答案解析

相似试题
  • 在类的继承关系中,需要遵循以下哪个继承原则?()

    单选题查看答案

  • 在类的继承结构中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的()。

    填空题查看答案

  • 在类层次中,子类只继承一个父类的数据结构和方法,则称为()。子类继承了多个父类的数据结构和方法,则称为()。

    填空题查看答案

  • 在类的设计中需要遵循的方针是什么?三个主要的设计准则:抽象、信息隐蔽和模块化如何才能做到?

    简答题查看答案

  • 在类的多层次继承结构中,类之间哪些函数是按作用域规则处理的?哪些函数是按多态性规则处理的?试编程说明之。

    简答题查看答案

  • 在private、protected、public、internal修饰符中,()是私有成员,在类的内部才可以访问;()是保护成员,该类内部和继承类中可以访问;()是公共成员,完全公开,没有访问限制;()是在同一命名空间内可以访问。

    填空题查看答案

  • 在类的定义中,类的()描述了该类的对象的行为特征。

    单选题查看答案

  • 在类的定义中,构造方法的作用是()

    单选题查看答案

  • 在类的成员中,用于存储属性值的是()。

    单选题查看答案