English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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éro | Clé | Héritage | Composition |
---|---|---|---|
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. |
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); } }
public class Student { } public class College { private Student student; public College() { this.student = new Student(); } }