JAVA技术内幕_什么是is-a和has-a关系
来源:互联网 发布:推背图 知乎 编辑:程序博客网 时间:2024/06/05 21:52
he is a people
he has a head
我是一个男人 is-a
我有一个女人 has-a
is_a 用于继承
has_a 是组合 一个类中包含了其他类
一般我们认为继承可以分为两种基本的形式:实现继承和接口继承。
实现继承的主要目标是代码重用:
我们发现类B和类C存在同样的代码,因此我们设计了一个类A,用于存放通用的代码。
基于这种思路的继承称为实现继承。
接口继承不同,它是基于现实生活中的语义的,表现了IsA的关系:
我们认为存款帐户和结算帐户都是帐户的子类,这种继承我们称之为接口继承。
注意,有些文章中一个类实现一个接口的行为定义为接口继承,这和这里的接口继承是不同的概念,为了区分两种概念,我们可以使用接口继承的另一种称呼-类型继承。
继承的关键就在于如何灵活的运用两种继承方式。
这里的接口的意思和Java或者C#中的interface有着不同。
在此的接口表示的是一个类中所有公有的方法的签名。
所以IsA关系是关于行为的。
HasA关系,也称为对象组合。实际上,HasA关系有两种。
第一种,静态HasA关系。这在UML中叫做组合(composition),比如“汽车has-a引擎”。
此种关系很像聚集,除了‘部分’的生命周期由‘整体’控制。
这种控制可能是直接的或者传递的。即‘整体’可能对创建或者销毁‘部分’具有直接的职责,或者它可能获得已经创建的部分,稍后传递给其它的假定对其有职责的整体。
第二种,动态HasA关系。这在UML中叫做聚合(aggregation),比如“飞机场has-a飞机”。
别忘了use-a 是依赖关系
- JAVA技术内幕_什么是is-a和has-a关系
- JAVA技术内幕_什么是is-a和has-a关系
- "is a"关系和"has a"关系
- Is a 和Has a之间关系
- Is a 和Has a之间关系
- Is-A 和 Has-A关系
- java 面向对象关系is-a has-a like-a
- use-a, has-a, is-a和实现关系 介绍
- use-a, has-a, is-a和实现关系 介绍
- C++中的is-a和has-a关系
- Java 继承和聚合/组合的关系以及 Is A,Has A
- java is-a has-a
- “is a” 和”has a“
- HAS-A和IS--A
- “is a” 和”has a“
- is-a和has-a
- is-a 和 has-a
- is-a与has-a的关系
- [解决]在用AJAX进行异步请求(asp)的时候,出现了乱码问题。
- 办公室22条潜规则_不知道是不是....
- java 命名规则_简单实用
- SWFUpload V2.2.0 中文说明文档
- 今天是我生日!
- JAVA技术内幕_什么是is-a和has-a关系
- 避免重定义
- C规范_1
- DHCP
- linux下的Find用法
- 没为什么好玩
- CVSNT
- 虚拟机安装Ghost
- setsockopt 设置socket