扩展可以是一个有关系吗?

时间:2012-12-25 14:48:47

标签: java oop

据我所知,Is-a关系是您的类扩展另一个类的地方,即A扩展B因此AB

一个has-a关系就是一个类实现一个接口,所以A有一个算法。

我的问题:是否存在is-a也是a-a的情况?

或实现接口可以成为is-a关系?

让我重新说一下:

如果一个类实现了一个接口,那么它是否具有is-a关系?

3 个答案:

答案 0 :(得分:5)

  

有一个关系是当一个类实现一个接口,所以A有   Aalgoritm。

这种说法是错误的。如果你实现一个接口仍然是一个Is-A关系。

Has-A关系(组合)是这样的:

Class ABC {
private XYZ z;
}

ABC有一个XYZ。

答案 1 :(得分:0)

我对has a关系的理解用组合表达,而不是界面实现。

就个人而言,我认为is-ahas-a可能同时发生:

class Foo{
 Bar bar;
}

Foo is a(n) Object.
Foo has a(n) Object. (Bar is Object too.)

答案 2 :(得分:0)

has-a关系与接口无关 - 它更像A有一个B类或A类成员封装B。

关于您的问题,请考虑以下事项:

interface IFSA {
     void foo();
 }

 class A implements IFSA { 
     void foo(){}
 }

 class B extends A {}

A是-a B,它实现了IFSA接口,所以答案是肯定的。