IS-A 和 HAS-A

Posted 逸足天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IS-A 和 HAS-A相关的知识,希望对你有一定的参考价值。

IS-A关系

IS-A就是说:一个对象是另一个对象的一个分类。

下面是使用关键字extends实现继承。

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

分析以上示例中的IS-A关系,如下:

  • Mammal IS-A Animal
  • Reptile IS-A Animal
  • Dog IS-A Mammal

HAS-A 关系

HAS-A代表类和它的成员之间的从属关系。这有助于代码的重用和减少代码的错误。

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
    private Speed sp;
} 

Van类和Speed类是HAS-A关系(Van有一个Speed),这样就不用将Speed类的全部代码粘贴到Van类中了,并且Speed类也可以重复利用于多个应用程序。

以上是关于IS-A 和 HAS-A的主要内容,如果未能解决你的问题,请参考以下文章

Java千百问_05面向对象(006)_is-a,has-a,like-a是什么

java中的继承(IS-A)与组合(HAS-A)关系[重复]

is-a have-a和 like-a的区别

JAVA基础——is-a have-a和 like-a的区别

java中 is - a和 has - a的区别

2017/8/4 SCJP学习