什么是泛化关系?用一个例子简单的说:假设A是B和C的父类,B、C具有公共类(父类)A,说明A是B、C的一般化(概括,也称泛化),B、C是A的特殊化。

  在编程上,泛化关系(Generalization)就是我们常说的继承关系,称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。

  在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字、在C++/C#/OC中使用冒号“:”来实现。

  UML示例图如下所示:

在UML当中,对泛化关系有三个要求:

  • 子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;
  • 子类中除了与父类一致的信息以外,还包括额外的信息;
  • 可以使用父类的实例的地方,也可以使用子类的实例。

  返回目录

转载于:https://www.cnblogs.com/goflee/p/3484577.html

设计模式中类的关系之泛化(Generalization)相关推荐

  1. 设计模式中类的关系之关联关系(Association)

    关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系.它体现的是两个类.或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友.这种关系比依赖更强.不存 ...

  2. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什 ...

  3. 转:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    转:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 原文:https://www.cnblogs.com/firstcsharp/p/5327659.html 类与类图 1) 类(Clas ...

  4. 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...

  5. 【转】 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合

    目录(?)[-] 继承 实现 依赖 关联 聚合 组合 类图及类图中的关系 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类( ...

  6. c++类与类的泛化(Generalization)关系

    类与类的泛化关系 类与类的泛化(Generalization)关系 泛化 具体表现 代码表现 类与类的泛化(Generalization)关系 泛化 表示类与类之间的继承关系,接口与接口之间的继承关系 ...

  7. ULM图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    在UML中,类使用包含类名.属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name.age和email,以及操作modifyInfo() public class Em ...

  8. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...

  9. 设计模式奠基石——UML关系转化为代码

    1.继承关系(泛化关系) [说明]:继承关系是子类(派生类)继承父类(基类),或者子接口继承父接口的关系.即子类对象"is a" 父类对象,比如鸟是动物. [UML图]: 图解:A ...

最新文章

  1. Mysql:is not allowed to connect to this MySQL server
  2. fastcgi协议分析与实例
  3. 洛谷——1064金明的预算方案————有依赖的背包
  4. javascript实现页面滚屏效果
  5. python随机画圆_python生成随机图形验证码详解
  6. apollo 部署 使用
  7. CSRF(跨站请求伪造)攻击 --
  8. CSS可见格式化模型
  9. 集合:在我的世界里,你就是唯一 - 零基础入门学习Python027
  10. c语言开发刷机工具,移动叔叔专用mtk刷机工具
  11. 华为eNSP-动态路由实验
  12. 数字孪生技术在智慧工厂中的应用,你知道多少?
  13. 谁才是中国企业服务的教父?
  14. [深度学习]如何替换YoloV5的主干网络:Flexible-Yolov5
  15. 推荐好友和共同好友sql
  16. 登录页面渗透测试思路总结
  17. 数据提取方法-数据提取的概念和数据的分类
  18. 核心频率个加速频率_RTX 3080超频研究:功耗墙和频率最关键,高频稳定看用料...
  19. Exception in thread “main“ java.io.FileNotFoundException: test\mybatis-config.xml (系统找不到指定的路径。)
  20. Oracle:UGA PGA

热门文章

  1. 玩转jquery插件之flexigrid 【转】
  2. 买了一块烂砖头(《ADO.NET技术内幕》)- 以及今天看砖头的一些感想(技术感想)...
  3. 【Vue2.0】—mixin混入 (十五)
  4. 1过程流程图 3 apqp_干货 | APQP过程流程图及最新版全套表格汇总,收藏备用!
  5. 用js代码判断质数_在 JS 中判断,并不是都要用 ===
  6. python是什么内容
  7. 如何通过改造休闲旅行车赚到1000万元?
  8. 能搞垮你的不止是同行
  9. 微信用久了,越来越占内存怎么办?
  10. go使用mongodb