public class B {
public String getMe()
{
return "Some";
}
}
假设我有一个上面的类,我们应该通过哪个参数决定使用什么?是一个关系还是一个关系?
HAS - A
public class A {
public static void main(String args[])
{
B b = new B();
System.out.println(b.getMe());
}
}
或
public class A extends B
{
public static void main(String args[])
{
A b = new A();
System.out.println(b.getMe());
}
}
答案 0 :(得分:22)
取决于逻辑关系。它只需要有意义。
示例:
假设您有动物课程 所以你有这些课程:动物,狗,猫,豹,毛皮,脚
猫与狗是A 动物
豹是A Cat。
动物 HAS A 毛皮,脚。
简而言之:
IS A 关系意味着您继承并扩展基类的功能 HAS 关系意味着该类正在使用另一个类,因此它将其作为成员。
答案 1 :(得分:17)
有四种类型的关系:
用法:这是两个类中最弱的关系,它意味着一个类可能在方法参数中显示为一个类型,或者在代码内部使用。
在您的示例中,如果A具有类型B的字段,则它应该是聚合(HAS A)。但是如果它只是在内部创建要在代码中使用的B的实例,并且当范围结束时该对象从内存中释放,那么它既不是IS A也不是HAS A.它只是一种使用关系。
答案 2 :(得分:1)
简单来说:
例如:
以下是我用于理解OOP的最佳资源之一:http://chortle.ccsu.edu/CS151/cs151java.html(第6部分和第10部分)
答案 3 :(得分:0)
is-a 就好比如,狗是动物或猫是动物或者它就像“一个人”是那种人“。 Is-a关系具有其他对象的属性,例如“ Animal ”是一个类(对象)等。
has-a 关系就像,一个对象有自己的属性,例如,Fish有Gills或裤子有口袋......就像那样。