对象导论之继承(一)

继承(一)
  对象这种观念,本身就是十分方便的工具,使得你可以通过概念将数据和功能封装到一起,因此可以对问题空间的观念给出恰当的表示,而不是受制于必须使用底层机器语言。这些概念用关键字class来表示,它们形成了编程语言中的基本单位。
  遗憾的是,这样做还是有很多麻烦:在创建了一个类之后,及时另一个新类与其具有相似的功能,你还是得重新创建一个新类。如果我们能够以现有的类为基础,复制它,然后通过添加和修改这个副本来创建新类那就要好多了。通过继承边可以达到这样的效果,不过也有例外,当源类(被称为基类、超类或父类)发生变动是,被修改的“副本”(被称为导出类、继承类或子类)也会反映出这些变动。
  在这里插入图片描述
  (这张UML图中的箭头从导出类指向基类,就像稍后你会看到的,通常会存在一个以上的导出类)
  类型不仅仅只是描述了作用于一个集合上的约束条件,同时还有与其他类型之间的关系。两个类型可以有相同的特征和行为,但是其中一个类型可能比另一个还有更多的特性,并且可以处理更多的消息(或以不同的方式来处理消息)。继承使用基类性和导出类型的概念表示了这种类型之间的相似性。一个基类型包含其所有导出类型所共享的特性和行为。可以创建一个基类性来表示系统中某些对象的核心概念,从基类型中导出其他类型,来表示此核心可以被实现的各种不同方式。
  以垃圾回收机为例,它用来归类散落的垃圾。“垃圾”是基类型,每一件垃圾都有重量、价值等特性,可以被切碎、熔化或分解。在此基础上,可以通过添加额外的特性(例如瓶子有颜色)或行为(例如铝罐可以被压碎,铁罐可以被磁化)导出更具体的垃圾类型。此外,某些行为可能不同(例如纸的价值取决于其类型和状态)。可以通过使用继承来构建一个类型层次结构,以此来表示待求解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章