IS--A与 Has-a 区别
2015-09-15 16:16
190 查看
IS--A基于类继承或接口实现,IS-A是表达这句话的一种方式:“这个东西是那个东西的一种”。例如:野马是一种马。(是一个)
HAS-A关系是基于用法(即引用)而不是继承。换句话说,如果类A中的代码具有对类B实例的引用,则“类A HAS-A类B”。例如:马有缰绳。(有一个)
“is-a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。
“has -a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。
HAS-A关系是基于用法(即引用)而不是继承。换句话说,如果类A中的代码具有对类B实例的引用,则“类A HAS-A类B”。例如:马有缰绳。(有一个)
“is-a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。
“has -a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。
相关文章推荐
- std::function与std::bind 函数指针
- 制作页面小结
- scons脚本示例
- Python 函数的创建和调用
- Android 支付宝钱包手势password裂纹战斗
- shell中一维数组值得获取
- 关于奇怪的并行进程分析
- ASP.NET MVC 习惯
- android缓存数据到本地放在哪儿最好?
- 黑马程序员Volley 图片加载相关源码解析
- jboss as7 访问ejb通用类
- Android开发编码规范导致的内存泄露问题
- 如何快速掌握一门新技术/语言/框架
- Ubuntu安装谷歌中文输入法
- ios 定位 航向检测
- java中String和StringBuider,StringBuffer的区别
- 黑马程序员Android 增强版百分比布局库 为了适配而扩展
- Java ClassLoader 机制
- 记账依据
- iOS- 给App添加内购& 验证购买iOS7新特性