Java类中的 is-a、is-like-a、has-a

has a

关联关系:聚合
凡是能够使用 has a 来描述的,统一以属性的方式存在

例如 Customer has a FoodMenu(顾客有一个食物菜单)

is a

继承关系:继承
凡是满足is a的表达式都可以设置为继承

例如 Cat is a Animal(猫是一种动物)

is like a

实现关系:接口
满足 is like a 的表达式也是一种继承

实现关系通常是:类实现接口

但是在继承中,仅覆盖了父类方法即为Is-a;若在覆盖父类方法基础上有新增方法,则为Is-like-a。

例子:

1.假设你确定两件对象之间是is-a的关系,那么此时你应该使用继承。比方菱形、圆形和方形都是形状的一种。那么他们都应该从形状类继承。

2.假设你确定两件对象之间是has-a的关系,那么此时你应该使用聚合。比方电脑是由显示器、CPU、硬盘等组成的。那么你应该把显示器、CPU、硬盘这些类聚合成电脑类。

3.假设你确定两件对象之间是like-a的关系,那么此时你应该使用组合。比方空调继承于制冷机,但它同一时候有加热功能。那么你应该把让空调继承制冷机类,并实现加热接口

猜你喜欢

转载自blog.csdn.net/qq2632246528/article/details/113619080