本节书摘来自华章计算机《基于模型的软件开发》一书中的第3章,作者:[美]H. S.莱曼(H. S. Lahman)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第3章 泛化、继承、泛型和多态
小小的荣耀也正是这样被更大的光荣所掩。国王出巡的时候,摄政的威权未尝不就像一个君主,可是一到国王回来,他的威权就归于乌有,正像溪涧中的细流注入大海一样。
——《威尼斯商人》,莎士比亚
图灵机的基本操作在应用中十分通用,这是硬件开发者的福音,但是仅仅通过基本操作构建程序是非常枯燥的。大多数与语言和建模相关的主要进步在于对抽象构造的替代,这使抽象构造对于图灵指令常见的组合更加简洁。
这种大幅度的替代开始于BAL为特定的0、1组合建立替代指令助记符,通过在3GL中添加过程、块结构、迭代形式、I/O构造以及一系列其他的抽象而取得了长足进展。然后,高层次设计概念使用图形表示法,代替了过去用简单的气泡和箭头表示上万个图灵指令组合的做法。
面向对象范式的一个主要贡献在于形式化和标准化了高层次的抽象,尤其是问题域的抽象,该抽象是对图灵指令集合简朴而严谨的替代。四个重要的面向对象构造为泛化、继承、泛型和多态。
许多人将泛化、继承、泛型和多态看作面向对象的标志性特征,因此我们用一整章来进行介绍。另外一种观点是,尽管很优雅,但是它们实际上只是一种机制,用于实现第2章中描述的那些更基础的面向对象的概念。