You are on page 1of 30

Universidad Pública de El Alto

CARRERA DE INGENIERIA DE SISTEMAS


Programación II

PREGUNTAS TEÓRICAS Y EJERCICIOS PRÁCTICOS

UNIDAD 3: CLASES Y HERENCIA


Pregunta 1.
¿Qué es la herencia en Programación?
La herencia es un mecanismo que permite a una clase heredar las propiedades de otra
clase. En el caso de la herencia, las clases se extienden mientras que las interfaces se
implementan. Pero la diferencia es que una interfaz extiende una interfaz y una clase
implementa una interfaz.
La clase o interfaz que está extendiendo a otra clase o interfaz se llama subclase, una clase
base o clase hija, mientras que la clase que se está extendiendo y cuyas propiedades están
siendo utilizadas por otra clase se llama superclase.
Pregunta 2.
¿Por qué no puedes heredar un constructor?
Cuando decimos que no podemos heredar un constructor, significa que no se puede crear
una instancia de subclase haciendo uso de cualquiera de los constrictores de superclase. No
puede hacer esto solo porque no desea que se anulen las propiedades de un constructor de
superclase. Esto hubiera sido posible si solo se hablara de la herencia, pero no porque al
hacerlo surgirían conflictos con otro concepto conocido como Encapsulación.
Pregunta 3.
¿Qué sucederá si Superclase y Subclase tienen el mismo nombre de campo?
La respuesta sería que el campo Superclase se ocultará en la subclase. Puede acceder al
campo de superclase oculto usando la palabra clave 'super' en la subclase.
herencia.
Pregunta 4.
¿Cuáles son los elementos pilares fundamentales que está conformado la
Programación Orientada a Objetos? ¿Cuáles son?
Tiene 4 elementos y son:
 Abstracción
 Encapsulamiento
 Herencia
 Polimorfismo

EJERCICIOS PRÁCTICOS.
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Ejercicio 1.
Realizar un programa que nos permita ejecutar una suma y una resta utilizando la herencia.
Solución.
CLASE BASE

 ClasePadre

 ClaseHija_Suma

 ClaseHija_Resta
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

CLASE MAIN

 cls_main

Salida.
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Ejercicio 2.
Realizar un programa que simule las funciones básicas de un cajero automático:
 Consulta de saldo
 Retiro de efectivo
 Depósito de efectivo
 Salir(finalizar)
El código del programa debe contener
1. Encapsulamiento
2. Métodos Setter y Getter.
3. Herencia
4. Polimorfismo
Solución.
CLASE BASE
 cls_cajero
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
 cls_consulta

 cls_deposito

 cls_retiro
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

CLASE MAIN
 cls_main
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

Salida.
Inicia el programa con el menú.

Se introduce la opción deposito.

Se deposita Bs. 8000.

Se introduce la opción consultar saldo.


Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Se introduce la opción retirar.

Se retira Bs. 500.

Se introduce la opción salir.

Ejercicio 3.
Se plantea desarrollar un programa Java que permita mostrar de Estudiantes regulares,
estudiantes con grado de Auxiliar y Docentes de carrera los cuales deben mostrar la
siguiente información: nombre, apellidos, ci y edad. Por su parte de los Estudiantes se debe
conocer el registro universitario, carrera a la que pertenecen, paralelo y materia preferida
del estudiante, del docente se desea conocer las horas trabajadas y la materia que dicta y
del Auxiliar la materia que dicta. Cada uno de estos debe contar con 2 por defecto y poder
ingresar uno más por consola.
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Nota: Se debe utilizar “javax.swing.JOptionPane” para el ingreso y muestra de los datos,
además de que debe contar con un menú para ver cuál de los tres se quiere ver los datos.
Solución.
CLASE BASE

 Docente

 Estudiante_Ayudante
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
 Persona

 Estudiante

CLASE MAIN
 cls_main
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

Salida.
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
UNIDAD 4: POLIMORFISMO
Pregunta 1.
¿Qué es el polimorfismo?
El polimorfismo es la asignación de un valor que se da a una subclase, o que se había
declarado ya en la clase principal. En resumen, el polimorfismo significa múltiples formas
y es una de las características más importantes de la POO, es la capacidad para enviar el
mismo mensaje a objetos diferentes donde cada uno de ellos responde de un modo
especifico.
Pregunta 2.
¿Diferencias entre los términos Overloading y Overriding?

Overloading significa que un mismo método tiene diferentes firmas mientras que
Overriding es el mismo método, por tanto misma firma, al que diferentes clases conectan a
través de la herencia. En algunos textos encontramos otra explicación en donde se resume
la sobrecarga como un ejemplo de polimorfismo en tiempo de compilación y la
sobreescritura como un ejemplo de polimorfismo en tiempo de ejecución.

Pregunta 3.
¿Para qué nos sirven las palabras “this” y “super”?
Las palabras reservadas "this" y "super" nos sirven para poder acceder a los atributos,
métodos y constructores de la clase en la que se encuentran y de la clase padre
respectivamente.
Pregunta 4.
¿Qué es una Clase Base?
Es aquella que no depende de ninguno de sus atributos de alguna otra clase, en términos de
herencia, sería la CLASE PADRE (clase que se mantiene fija) en el aspecto de

EJERCICIOS PRÁCTICOS.
Ejercicio 1.
Crear la clase padre "Materia" que tenga los principales atributos para heredar como
ejemplo de polimorfismo los datos y los puntos evaluación (parámetros), cada materia
"Programación II, Física III, Calculo III..." debe ser una clase hija de la clase padre
entonces instanciar los objetos (las materias) para diferentes paralelos en la clase main
"Principal".
Solución.
CLASE BASE

 cls_materia
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

 cls_calculo_III
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
 cls_estadistica_I

 cls_estructura_de_datos

 cls_fisica_III

 cls_ingles_tecnico_II

 cls_programacion_II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

CLASE MAIN
 cls_main

Salida.
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Ejercicio 2.
Realizar un ejercicio de polimorfismo donde se pueda mostrar los sonidos de los animales.
CLASE BASE

 cls_animal
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

CLASE MAIN

 cls_main
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Salida.

Ejercicio 3.
Suponga que debe crear distintas clases Java para describir los productos que vende un
supermercado, debe crear las siguientes Interfaces Java para describir algunas
características de los productos.

 Interfaz EsLiquido: Esta interfaz indica que los objetos creados a partir de la clase
serán líquidos, y tendrá los siguientes métodos:
public void setVolumen(double v);
public double getVolumen();
public void setTipoEnvase(String env);
public String getTipoEnvase();

 Interfaz EsAlimento: Esta interfaz indica que los objetos creados a partir de la
clase serán alimentos, y tendrá los siguientes métodos: public void
setCaducidad(LocalDate fc); public LocalDate getCaducidad(); public int
getCalorias();

 Interfaz ConDescuento: Esta interfaz indicará que el producto tiene descuento e


incluirá los siguientes métodos:
public void setDescuento(double des);
public double getDescuento();
public double getPrecioDescuento();

Creación de clases de productos


Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Se pide que programe las siguientes clases de productos, implementando las
interfaces que sean necesarias.

Clase Detergente: Define una botella de detergente (debe tener en cuenta que este
producto puede tener descuento) .
Sus propiedades principales serán: Marca (String) y Precio (double) .
Incluya otras propiedades según sea necesario a la hora de implementar las
interfaces.
Constructor
Programe un constructor que reciba como parámetros una marca y un precio.
Métodos set y get
Programe métodos set y get para la marca y el precio.

Métodos de las interfaces


Programe los métodos de las interfaces.
Método toString
Programe el método toString con todas las características del producto.
Clase Cereales: Define el producto caja de cereales. (Este producto no tiene descuentos)
Las propiedades del producto serán Marca, Precio y Tipo de cereal (String) Programe un
constructor que reciba como parámetros las tres propiedades anteriores. Programe los
métodos set y get para dichas propiedades. Programe los métodos de las interfaces
implementadas. (Si es necesario añada más propiedades a la clase) A tener en cuenta: las
calorías serán las siguientes: 5 si el cereal es espelta, 8 si es maíz, 12 si es trigo, y 15 en los
demás casos. Programe el método toString para devolver una cadena con todas las
características del producto.
Clase Vino: Esta clase describirá el producto botella de vino. (Este producto es
susceptible de tener descuento) El producto tendrá como propiedades la marca, el tipo de
vino, los grados de alcohol y el precio.
Programe al igual que los productos anteriores un constructor con estas cuatro propiedades
como parámetros. Programe también los métodos set, get, toString y los métodos de las
interfaces. Añada nuevas propiedades si es necesario. A tener en cuenta: las calorías se
calcularán multiplicando por 10 la graduación alcohólica.
cls_main: Realice un programa de prueba dónde cree varios productos de cada clase. Haga
un ejemplo de polimorfismo creando un ArrayList de productos alimenticios y calculando
la suma de sus calorías.
Solución.
CLASE BASE
 ConDescuento
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

 Detergente
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

 EsAlimento

 EsLiquido
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

 Vino
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II

 Cereales
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
Universidad Pública de El Alto
CARRERA DE INGENIERIA DE SISTEMAS
Programación II
CLASE MAIN

 cls_main

Salida.

You might also like