Está en la página 1de 4

Ingeniería en Desarrollo de Software

Programación orientada a Objetos


3er Semestre
Alumno: Daniel Pineda de la Riva
Matricula: es162006588
Docente: Martha Michaca Leano
Unidad 3
Autorreflexiones.
¿Cuál fue la mayor ventaja que percibiste al aplicar la herencia?

Con lo que hemos visto podemos decir que la herencia tiene dos implicaciones
importantes: la primera, la reutilización de código (herencia de código) y la segunda el
permitir el polimorfismo (herencia del tipo). La herencia admite tres variantes:

a) Herencia a partir de clases concretas (extends o herencia simple): heredamos el tipo y


la implementación. Opcionalmente en la clase que extiende agregaremos nuevos
métodos o sobrescribiremos otros ya existentes.

b) Herencia a partir de interfaces (implements o forma de herencia múltiple): heredamos el


tipo sin implementación. Para poder instanciar, todos los métodos deben ser
sobreescritos.

c) Herencia a partir de clases abstractas (extends sobre una clase abstracta, variante de
herencia simple): heredamos el tipo y posiblemente un fragmento de implementación.
Para poder instanciar, aquellos métodos abstractos han de ser sobreescritos, y la
subclase pasaría a ser concreta. Si no se implementan todos los métodos abstractos, la
subclase sigue siendo abstracta.

Describe como aplicaste el polimorfismo en tus clases.

Utilizando una misma expresión para invocar diferentes versiones de un mismo método,
para que me permitiera hacer diferentes implementaciones de los mismos métodos.

Realizando diferentes implementaciones de un mismo método, para poder adaptarlo a las


necesidades propias de cada clase.

3. ¿Para qué se usan las interfaces en programación?

Una interfaz (también llamada protocolo) es un medio común para que los objetos no
relacionados se comuniquen entre sí, permitiendo determinar el funcionamiento de una
clase, es decir, funciona como un molde o como una plantilla.
4. Describe como implementas métodos abstractos.

Una clase que declara la existencia de métodos, pero no la implementación de dichos


métodos (o sea, las llaves {} y las sentencias entre ellas), se considera una clase
abstracta.

Una clase abstracta puede contener métodos no-abstractos, pero al menos uno de los
métodos debe ser declarado abstracto.

Para declarar una clase o un método 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
serán las encargadas de agregar la funcionalidad a los métodos abstractos. Si no lo
hacen así, las clases hijas deben ser también abstractas.
Referencias:

Joyanes, L. (2001). Programación orientada a objetos versus programación estructurada:


C++ y algoritmos. España: McGrawHill Interamericana.

Joyanes, L., y Fernández, M. (2001). Java 2: manual de programación. España:


McGrawHill Interamericana.

Carlos Coronel. (2011). Bases de Datos Diseño, Implementación y Administración.


México: Cengage.

También podría gustarte