Академический Документы
Профессиональный Документы
Культура Документы
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.
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).
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.
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; } }
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