English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La composición es una técnica de diseño, en la que su clase puede tener como campo una instancia de otra clase. La herencia es un mecanismo en el que un objeto puede obtener las propiedades y comportamientos del objeto padre al extender la clase.
La composición y la herencia proporcionan reutilización de código a través de clases relacionadas. Cuando se utiliza la composición, también podemos obtener las funciones de la herencia. A continuación se muestra la diferencia.
Número | Clave | Herencia | Composición |
---|---|---|---|
1 | Básico | La herencia es una relación "es". | La composición es una relación "es". |
2 | Reutilización de código | En la herencia, una clase puede extender solo una interfaz, por lo que solo se puede reutilizar código en una clase | Podemos reutilizar código en múltiples clases |
3 | Alcance | La herencia proporciona sus funciones en tiempo de compilación | Implementación sencilla en tiempo de ejecución |
4 | Finalmente | No podemos reutilizar el código de la última clase | Incluso permite reutilizar código de clases finales |
5 | Métodos | Publica métodos públicos y protegidos de la clase padre | No lo expone. Ellos interactúan mediante la interfaz pública. |
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(); } }