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

Teoría programación orientada a objetos

 ¿Qué es interfaz?
Es un conjunto de métodos abstractos y constantes públicas. Es similar a una clase
abstracta, pero en esta todos y cada uno de los métodos deben ser abstractas
siendo las clases que implemente la interfaz quienes describan la lógica de los
métodos. Proporciona un mecanismo de encapsulación de los protocolos de los
métodos sin forzar al usuario a utilizar la herencia.
 ¿Cómo se implementa en java una interfaz?
La interface se declara como:
public interface nombreInterface {
public void nombreMetodo ();
}
En la clase a la cual se implementará se declara como:
public class nombreClase implements nombreInterface {
Se utilizan los métodos como una clase abstracta.
}
 ¿Qué significa que una clase implemente una interfaz?
Que tiene acceso a sobrescribir todos lo métodos de la interfaz a su conveniencia y
el uso de sus constantes públicas.
 ¿Cuál es la diferencia entre una clase y un objeto?
Una clase es la definición de un objeto, Esta clase define los métodos y atributos de
tal objeto utilizado en otra clase.
 ¿En qué consiste la herencia?
La herencia permita la reutilización de código de una clase ya existente, esta permite
que la clase a heredar pueda utilizar o sobrescribir sus métodos y variables.
 ¿Cómo se indica en java que una clase hereda de otra?
En java se declara de la siguiente forma:
public class NombreClase extends NombreClaseAHeredar {
}
 ¿Qué métodos de la clase padres son visibles desde la clase hija?
Todos los métodos de la clase padre son visibles en la clase hija menos los métodos
declarados con la palabra reservada final.
 ¿Si no pueden instanciarse objetos, qué sentido tiene definir una clase
abstracta?
Este se utiliza para jugar un rol como superclase para un grupo de clases hijas las
cuales puedes definir algunos métodos de la clase abstracta y luego instanciar las
clases hijas.
 ¿Cómo se programa en java una clase abstracta?
La clase se le declara como:
public abstract class nombreClase {
public abstract void nombreMetodo ();
}
Se utiliza en una clase hija sobrescribiéndola:
public void nombreMetodo () {…}
 ¿Cómo se invoca desde la clase hija un método de la clase padre?
public void nombreMedoto () {
super.nombreMetodo ();
}
 ¿Cómo se invoca, desde la clase hija, un constructor de la clase padre?
super(datosAIngresar);

4.1. Dado el siguiente programa ¿qué instrucciones NO provocan un error de


compilación y por qué?
 Object o = new Armadillo (); || Es la clase objeto padre de todas las clases,
de esta manera cualquiera instancia hecha en esta clase es válida.
 private static void adoptaAnimal (Animal a){
System.out.println("Ven, cachorrito!");
} || Se imprime el mensaje y ya que no se utiliza el objeto animal el programa
sigue corriendo.
4.2.1. ¿Cuál es el resultado de la ejecución?
Sonido animal armadillo: Grunt
Sonido animal muflón: MOOOO!
Sonido animal guepardo: Groar!
4.2.2. Siguiendo las reglas de la herencia, ¿qué métodos/clases debe implementar
y/o modificar para que cada animal diga GRUNT?
Eliminar los métodos sobrescritos en cada clase.
4.2.3. ¿Cómo obligar a que cada Animal tenga un salto propio? ¿Cómo afecta la
modificación propuesta a las clases derivadas?
Haciendo la clase animal una clase abstracta e implementar un método abstracto
en la clase, este obligaría a cada clase hija determinar el comportamiento del
método abstracto dándole un salto propio a todas.