English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quelle est la différence entre l'héritage et la composition en Java ?

La composition est une technique de conception, où vos classes peuvent prendre l'instance d'une autre classe comme champ de votre classe. L'héritage est un mécanisme où un objet peut obtenir les attributs et comportements de l'objet parent en étendant la classe.

La composition et l'héritage fournissent tous deux la réutilisabilité du code à travers les classes associées. Lorsque vous utilisez la composition, nous obtenons également les fonctionnalités de l'héritage. Voici les différences. 

NuméroCléHéritageComposition
1
De base 
L'héritage est une relation "est".
La composition est une relation "a". 
2
Réutilisation de code 
Dans l'héritage, une classe ne peut étendre qu'une interface, donc vous ne pouvez réutiliser le code qu'une seule fois dans une classe 
Nous pouvons réutiliser le code dans plusieurs classes 
3
Portée 
 L'héritage fournit ses fonctionnalités au moment de la compilation
Réaliser la composition facilement au moment de l'exécution 
4
Enfin 
 Nous ne pouvons pas réutiliser le code de la dernière leçon 
Il permet même de réutiliser le code à partir de classes finales
5
Méthodes 
Il expose les méthodes publiques et protégées de la classe parente 
Il ne sera pas exposé. Ils utilisent une interface publique pour interagir.

Exemple d'héritage

class Animal{
   String name = "Orio";
}
class Dog extends Animal{
   String type = "Dog";
   public static void main(String args[]) {
      Dog p = new Dog();
      System.out.println("Name:\"+p.name);
      System.out.println("Type:\"+p.type);
   }
}

Exemple de composition

public class Student {
}
public class College {
   private Student student;
   public College() {
      this.student = new Student();
   }
}
Vous pourriez aussi aimer