Вы находитесь на странице: 1из 3

Cada estudiante consulta y entrega definición de los siguientes conceptos:

 Herencia y Polimorfismo:
Herencia: la herencia en la programación orientada a objetos es la habilidad de extender
una funcionalidad existente definiendo una nueva clase que hereda funcionalidad de una
clase existente, lo cual nos ahorrara mucho tiempo a los programadores.
Si contamos con una clase que se acerca a lo que necesitamos, no es necesario crear una
clase desde cero, podemos aprovecharla y extenderla para crear nuestra nueva clase, esta
nueva clase se llamara subclase y la clase que ya teníamos se llamara superclase.
La subclase heredara todos los atributos y los métodos que fueron definidos en la clase
padre, si necesitamos cambiar algún método, se puede sobrescribir el comportamiento en
nuestra subclase. utilizando el mismo nombre y los mismos argumentos del método que se
encuentra en la clase subclase.
Una clase puede heredar atributos por dos superclases (clase padre). La herencia múltiple
puede ser usada para agrupar atributos y métodos de distintas clases en una sola.
Polimorfismo: significa literalmente muchas formas. En programación orientada a objetos
es una técnica para optimizar la funcionalidad basada en tipos particulares.
La diferencia entre herencia y polimorfismo es que herencia está relacionada con clases y
polimorfismo con métodos.
Existe 3 tipo de polimorfismo:
 Sobrecarga: es cuando existen funciones con el mismo nombre, con funcionalidad
similar en clases que son completamente independientes una de la otra.
 Paramétrico: existen funciones con el mismo nombre, pero se usan diferentes
parámetros (nombre o tipo). Se selecciona el método dependiendo del tipo de datos
que se mande.
 Inclusión: es cuando se puede llamar a un método sin tener que conocer su tipo, así
no se toma en cuenta los detalles de las clases especializadas utilizando una interfaz
comen.

 Herencia Simple: La herencia simple es la más típica, la que se puede encontrar en


cualquier lenguaje moderno como Java o C#.
La herencia simple es una relación entre una clase padre (clase base) y una clase hija (clase
derivada) llamada "es un tipo de", que muchas veces se abrevia como isA.
La herencia es simple cuando la clase derivada que estamos considerando sólo tiene una
clase base.
 Herencia Múltiple: herencia múltiple hace referencia a la característica de los
lenguajes de programación orientada a objetos en la que una clase puede heredar
comportamientos y características de más de una superclase. Esto contrasta con la
herencia simple, donde una clase solo puede heredar de una superclase.
Lenguajes que soportan herencia múltiple en su mayor parte son: C++, centura SQL,
Windows, CLOS, Eiffel, Object REXX, Perl y Python.
Java no permite herencia múltiple (una clase extienda varias otras). Sin embargo, por medio
de los interfaces se puede conseguir un efecto similar, una interfaz es parecida a una clase
abstracta, pero solo puede tener definidos métodos abstractos y constantes.
 Herencia de Interfaz: un uso no controvertido de la herencia múltiple es la
herencia de interfaz. En C++, toda herencia lo es de implementación, dado que todo
en una clase base, interface e implantación, para a formar parte de la clase derivada.
No es posible heredar solo una parte de una clase (es decir, la interface únicamente).
Es posible hacer herencia privada y protegida para restringir el acceso a los miembros
heredados desde las clases base cuando se usan por clientes de instancias de una clase
derivada, pero esto no afecta a la propia clase derivada; esa clase sigue conteniendo todos
los datos de la clase base y puede acceder a todos los miembros no privados de la clase
base.
La herencia de interfaces, por otra parte, solo añade declaraciones de miembros a la interfaz
de la clase derivada, algo que no está soportado directamente en C++.la técnica habitual
para simular la herencia de interfaz en C++ es derivar de una interfaz, que es una clase que
solo contiene declaraciones, ni datos, ni cuerpo de funciones. Estas declaraciones serán
funciones virtuales puras, excepto el destructor.
 Herencia de Implementación: La implementación de los métodos es heredada.
Puede sobrescribirse en las clases derivadas.

 Polimorfismo y reutilización: En programación orientada a objetos se denomina


polimorfismo a la capacidad que tienen los objetos de una clase de responder al
mismo mensaje o evento en función de los parámetros utilizados durante su
invocación. Un objeto polimórfico es una entidad que puede contener valores de
diferentes tipos durante la ejecución del programa.
En algunos lenguajes, el término polimorfismo es también conocido como ‘Sobrecarga de
parámetros’ ya que las características de los objetos permiten aceptar distintos parámetros
para un mismo método (diferentes implementaciones) generalmente con comportamientos
distintos e independientes para cada una de ellas.
 Sobrecarga: la sobrecarga es uno de los procedimientos mediante el cual java
implementa el polimorfismo (en programación orientada a objetos es la capacidad
que tiene los objetos de una clase de responder al mismo mensaje o evento en
función de los parámetros utilizados durante su invocación). La sobrecarga cosiste
en poder crear un mismo método tantas veces como se quiera.
 Polimorfismo en jerarquías de herencia: En Java muchas subclases pueden
heredar de una misma superclase, y a su vez una subclase puede convertirse en
superclase de otra. Así las cosas, podemos hablar de una jerarquía de herencia. La
jerarquía es el esquema organizativo de las clases con relación de herencia entre sí

 Variables Polimórficas: En Java las palabras que contienen objetos son variables
polimórficas. En Java, una variable polimórfica es una variable que contiene un
objeto y se refiere al hecho de que una misma variable puede contener objetos de
diferentes tipos del tipo declarado o de cualquier subtipo del tipo declarado por eso
se llama polimórfica que literalmente significa: muchas formas.