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

Ros Resndiz Julieta 12590412 2013

Herencia:
La idea de la herencia es permitir la creacin de nuevas clases basadas en clases existentes. Cuando heredamos de una clase existente, rehusamos (o heredamos) mtodos y campos, y agregamos nuevos campos y mtodos para cumplir con la situacin nueva. Cada vez que encontremos la relacin "es-un" entre dos clases, estamos ante la presencia de herencia. La clase ya existente es llamada superclases, o clase base, o clase padre. La clase nueva es llamada subclase, clase derivada, o clase hija. A travs de la herencia podemos agregar nuevos campos, y podemos agregar o sobre montar mtodos. Sobre montar un mtodo es redefinirlo en la case heredada. Hay dos tipos de herencia: Herencia Simple y Herencia Mltiple. La primera indica que se pueden definir nuevas clases solamente a partir de una clase inicial mientras que la segunda indica que se pueden definir nuevas clases a partir de dos o ms clases iniciales. Java slo permite herencia simple. Herencia simple: Es decir, una clase slo puede tener una superclase directa de la cual hereda todos los datos y mtodos. Puede existir una cadena de clases derivadas en que la clase A herede de B y B herede de C.

Herencia multiple: El diseo del lenguaje Java, imposibilita pensar el diseo de un programa aplicando herencia mltiple (Eckel, 2000), como se podra hacer por ejemplo en C++. Java permite nicamente una forma cercana al concepto de herencia mltiple, a travs de la implementacin de interfaces. Esta restriccin de los diseadores del lenguaje, les ha permitido simplificar la implementacin del compilador.

Ros Resndiz Julieta 12590412 2013

Polimorfismo:
Un objeto solamente tiene una forma (la que se le asigna cuando se construye ese objeto) pero la referencia a objeto es polimrfica porque puede referirse a objetos de diferentes clases (es decir, la referencia toma mltiples formas). Para que esto sea posible debe haber una relacin de herencia entre esas clases .

Clase base Una clase base es o puede ser cualquier tipo de clase. Es decir, para que una clase sea una clase base, no necesita nada especial. Una clase base como tal, puede ser heredada (que es lo ms habitual) o instanciada (si queremos acceder a la clase base de forma directa). Slo existe una restriccin para heredar de ella, y es que la clase base est sellada (sealed), en cuyo caso no podremos heredar de esa clase base. Otra ventaja que tienen las clases base, es que podemos igualmente sobreescribir o reemplazar sus mtodos y funciones siempre que stas estn decoradas con virtual y las clases que heredan los mtodos y funciones de la clase base, decoradas con override para sobreescribirlas (en C++ creo recordar ahora mismo de memoria que no es necesario este ltimo detalle).

Ros Resndiz Julieta 12590412 2013


Un ejemplo tpico en .NET de este tipo de clases es la clase base System.Exception.

Clase derivada:
En programacin orientada a objetos (POO) se denomina clase derivada, a aquella que aade atributos y/o mtodos a otra clase. Esta ltmima se denomina antecesora. En Java para declarar que una clase se deriva de otra se hace lo siguiente: public class ClaseDerivada extends ClaseAntecesora { // aqui van los atributos y metodos de la clase derivada } Observamos que la clusula extends es la que indica que la clase llamada claseDerivada se deriva de la clase llamada claseAntecesora La clase derivada hereda (es decir, puede manejar), los atributos y mtodos de la clase antecesora, que tengan visibilidad public y protected, pero no los private.

Ros Resndiz Julieta 12590412 2013 Clase abstracta:


Una clase abstracta puede contener mtodos no-abstractos pero al menos uno de los mtodos debe ser declarado abstracto. Para declarar una clase o un metodo como abstractos, se utiliza la palabra reservada abstract. abstract class Drawing { abstract void miMetodo(int var1, int var2); String miOtroMetodo( ){ ... } } Una clase abstracta no se puede instanciar pero si se puede heredar y las clases hijas sern las encargadas de agregar la funcionalidad a los mtodos abstractos. Si no lo hacen as, las clases hijas deben ser tambin abstractas.

Clase genrica:
Desde Java 5 contamos con una caracterstica llamada genrica que puede solventar esta clase de problemas. Los genricos son una mejora al sistema de tipos que nos permite programar abstrayndonos de los tipos de datos, de forma parecida a las plantillas de C++ (pero mejor). Gracias a las genricas podemos especificar el tipo de objeto que introduciremos en la coleccin, de forma que el compilador conozca el tipo de objeto que vamos a utilizar, evitndonos as el casting. Adems, gracias a esta informacin, el compilador podr comprobar el tipo de los objetos que introducimos, y lanzar un error en tiempo de compilacin si se intenta introducir un objeto de un tipo incompatible, en lugar de que se produzca una excepcin en tiempo de ejecucin. public class Caja { private Object dato; public Caja() { super(); } public Object dame() { return dato; } public void pon(Object x) { dato = x; } }

Ros Resndiz Julieta 12590412 2013

HERENCIA
CONCETO: TIPO: DEFINICION: EJEMPLO:

SIMPLE

Es decir, una clase slo puede tener una superclase directa de la cual hereda todos los datos y mtodos. Puede existir una cadena de clases derivadas en que la clase A herede de B y B herede de C.

MULTIPLE

POLIMORFISMO:
CONCEPTO: CLASE: DEFINICION: EJEMPLO:

BASE

DERIVADA

ABSTRACTA

Ros Resndiz Julieta 12590412 2013 GENERICA

Вам также может понравиться