IS a vs HAS a en Java
- Relation IS-A en Java
- Relation HAS-A en Java
- Principales différences entre la relation IS-A et la relation HAS-A
L’une des principales caractéristiques de l’utilisation d’un langage de programmation orienté objet est que nous pouvons réutiliser un code plusieurs fois. Généralement, nous pouvons utiliser deux concepts, l’héritage et la composition, pour obtenir la réutilisabilité.
L’héritage est une relation IS-A et la composition est une relation HAS-A. Les deux concepts diffèrent d’une certaine manière mais ont le même objectif, la réutilisabilité.
Voyons ci-dessous la différence entre ces deux concepts.
Relation IS-A en Java
Un héritage ou la relation IS-A en Java fait référence à la relation de deux ou plusieurs classes. L’héritage peut être obtenu en utilisant le mot-clé extends
en Java. Nous pouvons hériter d’une classe parente pour utiliser ses méthodes et variables dans une classe enfant.
Dans l’exemple de code ci-dessous, nous avons deux classes, Animal
et Dog
, la classe Animal
a une fonction whatAmI()
qui renvoie une chaîne, tandis que la classe Dog
étend la classe Animal
qui est un concept d’Héritage.
Ce Dog
est une relation Animal
. La classe Dog
peut désormais accéder à la méthode whatAmI()
depuis sa classe parente.
class Animal {
public String whatAmI() {
return "I belong to Animal class";
}
}
class Dog extends Animal {
public void aboutMe() {
System.out.println("I am a Dog class and " + whatAmI());
}
}
Production :
I am a Dog class and I belong to Animal class
Relation HAS-A en Java
Contrairement à l’héritage, la composition ou la relation HAS-A n’utilise aucun mot-clé comme extends
. Nous créons un objet de la classe parente ou de la classe que nous souhaitons utiliser dans cette méthode.
Dans l’exemple suivant, encore une fois, nous avons deux classes, Legs
et Dog
.
Legs
a une méthode howManyLegs()
. Dans la classe Dog
, nous créons un objet de la classe Legs
et utilisons cet objet pour appeler la fonction howManyLegs()
.
Maintenant, nous pouvons voir ici que le concept de Composition est appliqué, Dog
HAS-A Legs
ou Dog
classe HAS-A propriété de Legs
.
class Legs {
public String howManyLegs() {
return "I have four legs";
}
}
class Dog {
Legs legs = new Legs();
public void aboutMe() {
System.out.println("I am a Dog class and " + legs.howManyLegs());
}
}
Production :
I am a Dog class and I have four legs
Principales différences entre la relation IS-A et la relation HAS-A
IS-A | HAS-A |
---|---|
C’est un concept d’héritage | C’est un concept de Composition |
Une classe ne peut pas étendre plus d’une classe. | Une classe peut avoir une relation HAS-A avec plusieurs autres classes |
Une classe finale ne peut pas être prolongée en héritage | On peut réutiliser les cours finaux en Composition |
L’héritage est une liaison statique et ne peut pas être modifié au moment de l’exécution | La composition est une liaison dynamique et est flexible pour les changements |
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn