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.

Entradas relacionadas: