Sunteți pe pagina 1din 11

Programacin de Aplicaciones

MC Catalina Aranda Castillo

La herencia es la capacidad para crear nuevas clases (descendientes) que se construyen sobre otras existentes, permitiendo que stas les transmitan sus propiedades [Joy].

Existen dos tipos de Herencia (Simple y Mltiple).


Simple: Nuevas clases a partir de una clase inicial Mltiple: Nuevas clases a partir de dos o ms clases iniciales

Java soporta herencia simple (extensin de clases), que permite definir una nueva clase basada en otra clase ya existente sin modificarla.
La nueva clase, llamada subclase o clase extendida, hereda los miembros de una superclase existente protected y public (no se heredan los private) y aade otros miembros propios.
II. Conceptos avanzados de la POO

27/03/2012

Clase existente se denomina superclase, clase padre.

Clase derivada se denomina la subclase, clase hija, clase extendida o clase derivada. Una superclase puede tener cualquier nmero de subclases Una subclase puede tener slo una superclase
Se pueden reutilizar o cambiar los mtodos de las superclases y se pueden aadir nuevos datos y nuevos mtodos de las subclases. Las subclases pueden anular (redefinir) el comportamiento heredado de la clase padre.

Nota: La herencia es siempre transitiva, de modo que una clase puede heredar caractersticas de superclases de muchos niveles.
27/03/2012 II. Conceptos avanzados de la POO

es la superclase de B, C y D. D es la superclase de E. B, C y D son subclases de A. E es una subclase de D.


27/03/2012 II. Conceptos avanzados de la POO

Sintaxis: public class nombreclase extends ClaseBase A veces se requiere llamar a un mtodo de la superclase. Eso se realiza con la palabra reservada super.

this hace referencia a la clase actual, super hace referencia a la superclase respecto a la clase actual.
27/03/2012 II. Conceptos avanzados de la POO

Polimorfismo: Cualidad de lo que tiene o puede tener distintas formas [RAE]. Poli = Mltiple, morfismo= Formas , esto implica que un mismo Objeto puede tomar diversas formas. Propiedad de la POO que: Permite "programar en general" en vez de "programar en especfico". Permite escribir programas que procesen objetos que comparten la misma superclase (ya sea directa o indirectamente) como si todas fueran objetos de la superclase [Deitel2] Es la capacidad de que diferentes objetos de una misma jerarqua tengan comportamientos/formas distintos.
27/03/2012 II. Conceptos avanzados de la POO

Upcasting: Interpretar un objeto de una clase derivada como del mismo tipo que la clase base.

Downcasting: Interpretar un objeto de una clase base como del mismo tipo que una clase derivada suya.

27/03/2012

II. Conceptos avanzados de la POO

La estrategia para desarrollar una estructura polimrfica comienza con la identificacin de los mtodos comunes a travs de un grupo de tipos de objetos similares pero no idnticos y organizando una jerarqua de clases donde los mtodos comunes se sitan en la clase base, mientras que los restantes se organizan en clases derivadas, deducidas de esta clase base [Joy].

27/03/2012

II. Conceptos avanzados de la POO

Clase abstracta.- Es aquella que tiene uno o ms mtodos abstractos y de la que no se piensa instanciar objetos.

Su fin es servir como superclase de la que otras puedan heredar.


Las clases que heredan de una clase abstracta deben implementar los mtodos abstractos de su superclase o seguirn siendo abstractas.

Las clases a partir de las cuales se pueden crear instancias (objetos), se denominan clases concretas. Todas las clases vistas hasta este momento son clases concretas, significando que es posible crear instancias de la clase.
27/03/2012 II. Conceptos avanzados de la POO

Mtodo abstracto.- Es una signatura de un mtodo sin implementacin.


Su

implementacin subclases.

se

proporciona

en

sus

Regla: No todos los mtodos se pueden declarar abstractos. Los siguientes mtodos no se pueden declarar como abstractos:

Mtodos privados. Mtodos estticos.

Nota: La signatura o firma de un mtodo o una funcin define su entrada y su salida. Incluye por lo menos el nombre de la funcin o mtodo y el nmero de sus parmetros. En algunos lenguajes de programacin, puede incluir el tipo que devuelve la funcin o el tipo de sus parmetros.
II. Conceptos avanzados de la POO

28/03/2012

10

Un

mtodo abstracto no puede estar contenido en una clase no abstracta. En una subclase no abstracta extendida de una clase abstracta todos los mtodos abstractos deben ser implementados, incluso si no se utilizan en la subclase.

Para declarar una clase abstracta se puede hacer con la siguiente sintaxis:
abstract class NombreClase {}
28/03/2012 II. Conceptos avanzados de la POO

11

S-ar putea să vă placă și