打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
OOP编程之is-a和has-a以及is-a和is-like-a之间的关系。

概要:本文主要讨论is-a和has-a以及is-a和is-like-a之间的关系。

OOP编程思想中,继承是一个十分重要的内容。下面介绍几个 常见的容易混淆的术语。

首先举例子:

我们常见的动物,羊有很多种类,只是一种泛指,绵羊是其中一种,那么羊和绵羊的关系,就是is-a,即它们是继承的关系。

再如,羊身上都有羊毛,而不同种类的羊,羊毛生物形态也不同,比如绵羊和羚羊,前者羊毛丰富、蓬松、柔软,呈白色;后者羊毛稀少、刚硬,呈灰褐色。对于绵羊来说,羊毛和羊的关系就是has-a。对于羚羊也是同理。我们可以根据羊毛的不同,来区别羊的品种。

用自然语言来表述二者:

is-a: 这种事物(绵羊)是那种事物(羊)中的一个种类。

has-a:这种事物(羊毛)隶属于那种事物(绵羊),是它的一个部分、部件。


这种思想在OOP上,体现在哪方面呢?答案就是抽象类和接口的关系。

如下图:


图1 is-a与has-a之间的关系

   可以看到  MyClass 继承自 A,它们是is-a关系。

   MyClass实现了接口I,它们是has-a关系。


-------------------------------------俺是很华丽的分割线-------------------------------------

那么is-a和is-like-a啥关系呢?

同样,举例子,如图:


   类B



总结就是: 

     如果继承过程中,仅仅是覆盖了父类中的方法,则为is-a关系。

    如果有新增的方法,则为is-like-a关系。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
流浪羊没剪毛毛重40多公斤 “胖的走不动”
羊毛、羊绒、羊驼毛、澳毛、马海毛、羊羔毛是什么关系?谁最贵?
美容院经营的羊圈理论
流浪羊5年没剪毛 全身被毛覆盖看不到眼睛
流浪羊毛量42公斤,可做30件针织衫
逃跑5年绵羊,独自在森林生活,长20公斤且极难闻羊毛对抗猛兽
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服