Conceptos esenciales de Programación Orientada a Objetos: herencia, polimorfismo y más
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,56 KB
Conceptos esenciales de la Programación Orientada a Objetos
Herencia
Herencia: Proceso por el que objetos de una clase (clase derivada) adquieren las propiedades (atributos y métodos) de objetos de otra clase (clase base).
Agregación
Agregación: La parte (miembro) es parte del objeto (clase) y:
- La parte (miembro) puede pertenecer a más de un objeto (clase) a la vez.
- La parte (miembro) no tiene su existencia gestionada por el objeto (clase).
- La parte (miembro) no conoce la existencia del objeto (clase).
Composición
Composición: La parte (miembro) es parte del objeto (clase) y:
- La parte (miembro) solo puede pertenecer a un objeto (clase) a la vez.
- La parte (miembro) tiene su existencia gestionada por el objeto (clase).
- La parte (miembro) no conoce la existencia del objeto (clase).
Sobrecarga
Sobrecarga: Capacidad de asociar varios significados a un mismo nombre en un programa. Consiste en usar el mismo nombre para diferentes métodos; cada uno se especifica mediante sus argumentos. Se resuelve en tiempo de compilación.
Polimorfismo
Polimorfismo: En POO, es cuando una variable o un elemento de una estructura de datos puede referirse a objetos de diferentes tipos en tiempo de ejecución, todos ellos controlados por la declaración estática. Es la propiedad que hace posible enviar mensajes sintácticamente iguales a objetos de distinto tipo.
Tipos de polimorfismo:
- Polimorfismo dinámico (en tiempo de ejecución): permite que el comportamiento concreto se determine en tiempo de ejecución.
- Polimorfismo estático (ad hoc): los tipos de datos deben ser explícitos y declarados; la resolución se realiza en tiempo de compilación.
Interfaz
Interfaz: Clase abstracta y pública (no se definen variables de instancia) que permite una misma funcionalidad a clases no relacionadas. Hace referencia a las acciones permitidas, pero no a cómo implementarlas. Permiten al programador ser más abstracto respecto a los objetos en tiempo de programación. Cuando una función definida en la interfaz es invocada, la función del objeto real es la que se ejecuta en tiempo de ejecución. El programador debe crear las funciones específicas en una clase que implementa una interfaz.
Constructor
Constructor: Similar a un método de una clase; sirve para crear (instanciar) un objeto (instancia) perteneciente a la clase e inicializar los datos de éste.
Destructor
Destructor: Método de la clase que es invocado cuando un objeto se destruye.
Overriding (sobrescritura)
Overriding (sobrescritura): Permite que una subclase defina una implementación propia de un método que ya ha sido definido en la superclase.
Abstracción y Encapsulación
Abstracción: Una clase es una representación lógica del mundo real. Recoge las características esenciales o básicas de los objetos que modela.
Encapsulación: Consiste en reunir datos y funciones en una unidad básica llamada clase. La clase usa el concepto de abstracción y se define mediante una lista de atributos (miembros) y funciones (métodos) que operan sobre esos atributos, encapsulando las propiedades esenciales del objeto que serán creados a partir de la clase.