什么是类层次结构?(class hierarchy?)

类层次结构,也称为类分类法,是一组相关的类,这些类通过继承进行连接,以执行类似的操作。层次结构的顶部可以是一个基类,它下面的所有其他类都是从该基类派生的,或者层次结构可以有多个基类,这些基类的功能稍后合并到一个或多个派生类中。类之间的关系可以用树来表示,大型分类法中的每个较小的树也可以被视为一个层次结构。...

类层次结构,也称为类分类法,是一组相关的类,这些类通过继承进行连接,以执行类似的操作。层次结构的顶部可以是一个基类,它下面的所有其他类都是从该基类派生的,或者层次结构可以有多个基类,这些基类的功能稍后合并到一个或多个派生类中。类之间的关系可以用树来表示,大型分类法中的每个较小的树也可以被视为一个层次结构。

C++ allows multiple inheritance, so complex hierarchies can be built with multiple roots and multiple trees that merge into one another.

并非所有的类层次结构都可以有多个根,任何类层次结构的结构在很大程度上取决于它所用的语言。C++允许多重继承,因此可以用多个根和多个树相互合并来构建复杂的层次结构。另一方面,Java®仅限于单个继承,因此其类关系通常更简单,构建为具有单个根的相对独立的树。接口继承会给Java®中的类层次结构增加一些复杂性,但在如此复杂的框架中,接口几乎从未被调用过,就像将树合并在一起一样。

类层次结构的组件可以在类型和功能上有所不同,只要在继承方面始终遵循语言的规则。层次结构中的类可以是公共的、受保护的、抽象的、具体的或虚拟的。也可以使用接口、全局函数和好友。根据计算机语言的不同,这些类型中的一些可能比其他类型更适合继承。一般来说,层次结构非常灵活,可以以多种方式用于多种目的。

关于特定类型的类在层次结构中的位置,没有硬性的规则。可以想象,任何类都可以是上述任何类型。一般来说,层次结构中没有派生类的最后一个类应该是公共的和具体的。然而,由于纯抽象类层次结构也可以存在,这只是一条经验法则。

尽管类层次结构是组织代码和封装功能的有用工具,但有时深入研究层次结构可能会混淆代码,而不是澄清代码并使其更易于维护。在许多阶级之间建立稳固的关系需要一定的远见;虽然最初可能更容易将代码分解成许多小块,但这些小块以后可能更难处理。正确构建后,类层次结构可以帮助开发人员和用户确定类的工作方式。如果它是在没有维护和清晰性的情况下构建的,那么回顾和理解很多层次的继承可能会让人困惑。

  • 发表于 2021-12-12 21:06
  • 阅读 ( 222 )
  • 分类:互联网

你可能感兴趣的文章

类图(class diagram)和对象图(object diagram)的区别

...象图是两种结构化建模UML图。 目录 1. 概述和主要区别 2. 什么是类图 3. 什么是对象图 4. 并列比较-类图与表格式的对象图 5. 摘要 什么是类图(class diagram)? 类图表示系统的静态视图。它描述了类的属性和操作。类图是面向对象...

  • 发布于 2020-10-18 08:23
  • 阅读 ( 695 )

入门时应学习的10个核心java概念

... 对象是类的实例。类定义用作在正在运行的程序中实例化对象的蓝图。下面是如何在程序中创建上述类的实例(名为circle)并调用其方法(解释如下): ...

  • 发布于 2021-03-13 05:33
  • 阅读 ( 247 )

如何在microsoft powerpoint中构建思维导图

你可以用笔和纸、数字笔记本或电脑上的专用应用程序来创建思维导图。Microsoft Word是**快速思维导图的一个很好的候选者,但现在让我们考虑一下另一个应用程序:Microsoft PowerPoint可以更熟练地**思维导图,因为它有现成的画布...

  • 发布于 2021-03-25 12:48
  • 阅读 ( 230 )

物体(objects)和班级(classes)的区别

...除了保存数据外,在保存函数的过程中还使用了类。对象是类的实例。当存在变量时,类是类型,而对象是变量。“阶级”一词用来肯定阶级。正式标识符是CLASS\u NAME,而对象的名称用对象名称表示。主体包含可以是数据声明或...

  • 发布于 2021-06-23 17:37
  • 阅读 ( 236 )

erd公司(erd)和类图(class diagram)的区别

...序在一起以显示对象之间的关系。表示是一个静态图,它是类图。 Sourcehttp://www.google.com/search?q=class+diagram&hl=en&安全=关闭;prmd=ivns&tbm=isch&tbo=u&来源=大学;sa=X和;ei=99TxTf_u2;-FYLOrQfj1pj6Bw&...

  • 发布于 2021-06-23 21:07
  • 阅读 ( 332 )

抽象类(abstract class)和java接口(interface in java)的区别

...的静态和默认方法。让我们详细研究一下两者的区别。 什么是java中的抽象类(an abstract class in java)? Java中的抽象类是一个声明为抽象的类——它可能包含也可能不包含抽象方法。它与Java接口非常相似,只是它可以包含默认的方...

  • 发布于 2021-06-25 03:52
  • 阅读 ( 307 )

身份证件(id)和css中的类(class in css)的区别

...L标记。id和class是两种类型的选择器。 覆盖的关键领域 1.什么是CSS规则-定义,例2.什么是id-定义,例3.什么是类-定义,例4.id和类的区别-关键区别的比较 关键术语 类,CSS规则,ID 什么是css规则(css rules)? CSS由一组规则组成。浏...

  • 发布于 2021-06-30 21:53
  • 阅读 ( 316 )

班(class)和结构(structure)的区别

...类型,而结构是值类型的数据类型。 覆盖的关键领域 1.什么是类-定义,功能2.什么是结构-定义,功能3.类和结构的区别是什么-关键区别的比较 关键术语 类别、结构 什么是班(class)? 在面向对象编程(OOP)中,一切都是对象。...

  • 发布于 2021-07-01 04:30
  • 阅读 ( 303 )

统一建模语言(uml)和类图(class diagram)的区别

...图就是其中之一,它是一个静态图。 覆盖的关键领域 1.什么是UML–定义,功能2.什么是类图–定义,功能3.UML和类图之间的关系是什么–关联概要4.UML和类图之间的区别是什么–关键区别的比较 关键术语 类图,UML 什么是统一建...

  • 发布于 2021-07-01 07:13
  • 阅读 ( 397 )

类图(class diagram)和实体关系图(entity relationship diagram)的区别

...体关系图有助于设计数据库。 覆盖的关键领域 1.类图是什么?定义、功能2.什么是实体关系图-定义、功能3.类图与实体关系图的区别–关键差异比较 关键术语 类图,实体关系图,UML 什么是类图(a class diagram)? 类图是UML图。它...

  • 发布于 2021-07-01 16:54
  • 阅读 ( 351 )
vlxp39199S
vlxp39199S

0 篇文章

相关推荐