Diferencia entre herencia y contenedor

Diferencia entre herencia y contenedor
Diferencia entre herencia y contenedor

Video: Diferencia entre herencia y contenedor

Video: Diferencia entre herencia y contenedor
Video: ¿Cómo funcionan las Subastas de Letras del Tesoro Público en España? Ejemplo sencillo 2024, Mes de julio
Anonim

Herencia vs Portacontenedores

La herencia y el contenedor son dos conceptos importantes que se encuentran en OOP (Ejemplo de programación orientada a objetos: C++). En términos simples, tanto Containership como Inheritance se ocupan de proporcionar propiedades o comportamientos adicionales a una clase. La herencia es la capacidad de una clase para heredar propiedades y comportamiento de una clase principal al extenderla. Por otro lado, Containership es la capacidad de una clase para contener objetos de diferentes clases como datos de miembros.

¿Qué es la herencia?

Como se mencionó anteriormente, la herencia es la capacidad de una clase para heredar propiedades y comportamientos de una clase principal al extenderla. La herencia esencialmente proporciona la reutilización del código al permitir extender las propiedades y el comportamiento de una clase existente por una clase recién definida. Si la clase A extiende a B, entonces la clase B se denomina clase principal (o superclase) y la clase A se denomina clase secundaria (o clase/subclase derivada). En este escenario de ejemplo, la clase A heredará todos los atributos y métodos públicos y protegidos de la superclase (B). La subclase puede anular opcionalmente (proporcionar una funcionalidad nueva o ampliada a los métodos) el comportamiento heredado de la clase principal. La herencia representa una relación "es-un" en OOP. Básicamente, esto significa que A también es una B. En otras palabras, B puede ser la clase con una descripción general de una determinada entidad del mundo real, pero A especifica una cierta especialización. En un problema de programación del mundo real, la clase Persona podría extenderse para crear la clase Empleado. Esto se llama especialización. Pero también podría crear primero la clase Empleado y luego generalizarla también a una clase Persona (es decir,mi. generalización). En este ejemplo, el Empleado tendrá todas las propiedades y el comportamiento de la Persona (es decir, el Empleado también es una Persona) y puede contener alguna funcionalidad adicional (por lo tanto, la Persona no es un Empleado) también.

¿Qué es un portacontenedores?

Containership es la capacidad de una clase para contener objetos de diferentes clases como datos de miembros. Por ejemplo, la clase A podría contener un objeto de la clase B como miembro. Aquí, todos los métodos públicos (o funciones) definidos en B pueden ejecutarse dentro de la clase A. La clase A se convierte en el contenedor, mientras que la clase B se convierte en la clase contenida. Containership también se conoce como Composición. En este ejemplo, se puede decir que la clase A está compuesta por la clase B. En OOP, Containership representa una relación "tiene-a". Es importante tener en cuenta que, aunque el contenedor tiene acceso para ejecutar todos los métodos públicos de la clase contenida, no puede modificar ni proporcionar funcionalidad adicional. Cuando se trata de un problema de programación del mundo real, un objeto de la clase TextBox puede estar contenido en la clase Form y, por lo tanto, se puede decir que un Form contiene un TextBox (o, alternativamente, un Form se compone de un TextBox).

Diferencia entre herencia y contenedor

Aunque Herencia y Containership son dos conceptos de programación orientada a objetos, son bastante diferentes en lo que permiten lograr al programador. La herencia es la capacidad de una clase para heredar propiedades y comportamiento de una clase principal al extenderla, mientras que Containership es la capacidad de una clase para contener objetos de diferentes clases como datos de miembros. Si una clase se extiende, hereda todas las propiedades/comportamientos públicos y protegidos y la subclase puede anular esos comportamientos. Pero si una clase está contenida en otra, el contenedor no tiene la capacidad de cambiar o agregar comportamiento al contenido. La herencia representa una relación "es-un" en OOP, mientras que Containership representa una relación "tiene-un".

Recomendado: