设计模式中类的关系之泛化(Generalization)
什么是泛化关系?用一个例子简单的说:假设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)相关推荐
- 设计模式中类的关系之关联关系(Association)
关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有联系.它体现的是两个类.或者类与接口之间语义级别的一种强依赖关系,比如我和我的朋友.这种关系比依赖更强.不存 ...
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什 ...
- 转:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
转:UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 原文:https://www.cnblogs.com/firstcsharp/p/5327659.html 类与类图 1) 类(Clas ...
- 【UML】UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
http://www.cnblogs.com/olvo/archive/2012/05/03/2481014.html 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的 ...
- 【转】 UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合
目录(?)[-] 继承 实现 依赖 关联 聚合 组合 类图及类图中的关系 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类( ...
- c++类与类的泛化(Generalization)关系
类与类的泛化关系 类与类的泛化(Generalization)关系 泛化 具体表现 代码表现 类与类的泛化(Generalization)关系 泛化 表示类与类之间的继承关系,接口与接口之间的继承关系 ...
- ULM图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
在UML中,类使用包含类名.属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name.age和email,以及操作modifyInfo() public class Em ...
- UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- 设计模式奠基石——UML关系转化为代码
1.继承关系(泛化关系) [说明]:继承关系是子类(派生类)继承父类(基类),或者子接口继承父接口的关系.即子类对象"is a" 父类对象,比如鸟是动物. [UML图]: 图解:A ...
最新文章
- Mysql:is not allowed to connect to this MySQL server
- fastcgi协议分析与实例
- 洛谷——1064金明的预算方案————有依赖的背包
- javascript实现页面滚屏效果
- python随机画圆_python生成随机图形验证码详解
- apollo 部署 使用
- CSRF(跨站请求伪造)攻击 --
- CSS可见格式化模型
- 集合:在我的世界里,你就是唯一 - 零基础入门学习Python027
- c语言开发刷机工具,移动叔叔专用mtk刷机工具
- 华为eNSP-动态路由实验
- 数字孪生技术在智慧工厂中的应用,你知道多少?
- 谁才是中国企业服务的教父?
- [深度学习]如何替换YoloV5的主干网络:Flexible-Yolov5
- 推荐好友和共同好友sql
- 登录页面渗透测试思路总结
- 数据提取方法-数据提取的概念和数据的分类
- 核心频率个加速频率_RTX 3080超频研究:功耗墙和频率最关键,高频稳定看用料...
- Exception in thread “main“ java.io.FileNotFoundException: test\mybatis-config.xml (系统找不到指定的路径。)
- Oracle:UGA PGA
热门文章
- 玩转jquery插件之flexigrid 【转】
- 买了一块烂砖头(《ADO.NET技术内幕》)- 以及今天看砖头的一些感想(技术感想)...
- 【Vue2.0】—mixin混入 (十五)
- 1过程流程图 3 apqp_干货 | APQP过程流程图及最新版全套表格汇总,收藏备用!
- 用js代码判断质数_在 JS 中判断,并不是都要用 ===
- python是什么内容
- 如何通过改造休闲旅行车赚到1000万元?
- 能搞垮你的不止是同行
- 微信用久了,越来越占内存怎么办?
- go使用mongodb