MIGUEL ANGEL AGUILAR EST E STANISLAO ANISLAO ES1511109383
UNIVERSIDAD ABIERTA Y A DISTANCIA DE MEXICO DESARROLLO DE SOFTWARE
PROGRAMACIÓN PROGRAMACIÓ N ORIENT OR IENTADA ADA A OBJETOS 3ER SEMESTRE
UNIDAD 3 A C T I VI VI D A D 1
Subclase
Una subclase es una clase que desciende de otra clase. Una subclase hereda el estado y el comportamiento de todos sus ancestros. El término superclase se refiere a la clase que es el ancestro más directo, así como a todas las clases ascendentes.
Superclase
La clase padre de cualquier clase es conocida como su superclase.
Jerarquía 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í.
Interface
Es una colección de definiciones de métodos sin cuerpo y de declaraciones de constantes de tipo primitivo, agrupadas bajo un nombre. Establece qué debe hacer la clase que la implementa, sin especificar el cómo.
Herencia
La herencia es un mecanismo que permite la definición de una clase a partir de la definición de otra ya existente. La herencia permite compartir automáticamente métodos y datos entre clases, subclases y objetos.
La herencia está fuertemente ligada a la reutilización del código en la OOP. Esto es, el código de cualquiera de las clases puede ser utilizado sin más que crear una clase derivada de ella, o bien una subclase.
Hay dos tipos de herencia: Herencia Simple y Herencia Múltiple. 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 más clases iniciales. Java sólo permite herencia simple.
Polimorfismo
Otro concepto de la OOP es el polimorfismo. Un objeto solamente tiene una forma (la que se le asigna cuando se construye ese objeto) pero la referencia a objeto es polimórfica porque puede referirse a objetos de diferentes clases (es decir, la referencia toma múltiples formas). Para que esto sea posible debe haber una relación de herencia entre esas clases.
Ejemplo Herencia y Polimorfismo
Un ejemplo del concepto de herencia es el de figuras geométricas. Se puede considerar una clase denominada FiguraGeometrica, del cual heredan las clases Cuadrado, Circulo, Triangulo y Rectángulo.
En este caso, la clase FiguraGeometrica, poseería un atributo que puede ser llamado valor1. Este atributo es heredado por las clases Cuadrado, Circulo, Triangulo y Rectángulo. Sin embargo, las clases Rectángulo y Triangulo requieren dos valores. Esto indica que deben incluirse como atributos de cada una de estas clases.
Por otro lado, la clase FiguraGeometrica puede implementar los métodos consultores y modificadores, los que podrán ser usados por cada una de las clases que la heredan.
Así mismo, de la clase Cuadrado, es posible heredar la clase Cubo. De la clase Triangulo es posible heredar la clase Pirámide y Cono. De la clase Circulo es posible heredar la clase Esfera y Cilindro.
La representación de herencia del caso anteriormente expuesto en lenguaje de modelado es la siguiente.
El polimorfismo es la característica de la programación orientada a objetos que permite modificar la instancia de un objeto en tiempo de ejecución basado en una jerarquía de herencia. De esta forma, es posible generar una relación de vinculación denominada Binding. El polimorfismo se puede realizar con clases superiores normales, abstractas e interfaces.
El objetivo del polimorfismo, consiste en poder acceder a diferentes servicios en tiempo de ejecución sin necesidad de implementar diferentes referencias a objetos. Esta característica, provee una gran flexibilidad en el proceso de desarrollo y ejecución de la aplicación.
Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.
Con base en el modelo anterior, se puede crear una referencia de la clase FiguraGeometrica de la siguiente forma.
1 FiguraGeometrica figura;
A la referencia figura se le puede generar instancia de cualquiera de las clases que derivan de ella de la siguiente forma.
1 figura = new Circulo(5); 2 figura = new Cuadrado(5); 3 figura = new Rectangulo(5,2); 4 figura = new Triangulo(5,2); 5 figura = new Cubo(5);
En la primera línea, el objeto figura tiene la forma de circulo, de tal forma que si se accede al método getArea, se ejecuta el método implementado en círculo.
En la segunda línea, el objeto figura tiene la forma de cuadrado, de tal forma que si se accede al método getArea, se ejecuta el método implementado en cuadrado.
En la tercer línea, el objeto figura tiene la forma de rectángulo, de tal forma que si se accede al método getArea, se ejecuta el método implementado en rectángulo.
En la cuarta línea, el objeto figura tiene la forma de triangulo, de tal forma que si se accede al método getArea, se ejecuta el método implementado en triangulo.
En la quinta línea, el objeto figura tiene la forma de cubo, de tal forma que si se accede al método getArea, se ejecuta el método implementado en cubo.