¿Qué es la herencia?
Un tipo de método privado de cualquier clase que tenga subclases.
Son clases con métodos y atributos que deben implementarse en sus subclases.
El hecho de crear jerarquía de clases, donde una clase extiende de otra.
Un tipo de polimorfismo. Una subclase puede tener varias implementaciones.
¿Cuál de las siguientes opciones NO tendría sentido en herencia?
Clases hijas: Bulldog, Labrador, Husky. Clase padre: Perro.
Clases hijas: PerroBulldog, GatoPersa. Clase padre: Mascota.
Clase padre: Vehiculo. Clases hijas: Coche, Avion, Tren.
Clase padre: Gato. Clases hijas: Mascota, Persa, Siames.
Marca las palabras clave que estén relacionadas con la herencia.
abstract
private
instanceof
protected
extends
implements
static
class
super
interface
¿Qué es el polimorfismo? Marca una o más respuestas.
La manera mediante la cual clases diferentes con métodos iguales pueden tener implementaciones diferentes.
Las clases polimorfas son aquellas que pueden tener métodos abstractos.
Es un concepto de POO donde una clase hija hereda o extiende de otra padre.
El hecho de que un método de la clase pueda cambiar en tiempo de ejecución.
¿Una clase abstracta tiene métodos no abstractos?
Todos los métodos son abstractos, pero los atributos constantes pueden no serlo.
No, en una clase abstracta por definición todos sus métodos son abstractos.
Sí. En una clase abstracta sólo los atributos son abstractos, los métodos no.
A veces sí, a veces no, depende como se definan los métodos de la clase.
A, B, C y D son clases con métodos propios. A es una clase abstracta con métodos abstractos. B hereda de A. C hereda de B. D hereda de A. Marca las respuestas verdaderas.
B, C y D pueden ser clases abstractas y tener otras subclases.
El conjunto de métodos de C es un subconjunto de los de B y A.
El conjunto de métodos de A es un subconjunto de los de B, C y D.
C y D tienen métodos compartidos con B, pero con diferente implementación.
¿Qué es una interfaz?
Es una clase donde todos sus métodos se deben definir como abstractos.
Es una "clase especial" que no puede tener subclases.
Es una ventana gráfica que permite diseñar la parte visual de un programa.
Es una colección que especifica métodos sin implementar y atributos constantes comunes para todas las clases que la implementen.
¿Qué diferencias hay entre una clase abstracta y una interfaz? Marca una o más respuestas.
Si una clase abstracta tiene todo definido como abstract no hay diferencias.
Una interfaz no tiene subclases, sino clases que la implementan, por lo que no es posible usar la palabra clave super en ninguna clase que implemente la interfaz.
Todos los atributos de una interfaz son declarados constantes por defecto (public static final).
Una interfaz tiene herencia múltiple y todos sus métodos son public abstract.
En una clase abstracta se pueden definir constructores y otros métodos directamente implementados, en una interfaz no.
En una clase abstracta se pueden declarar funciones abstractas, en una interfaz no.
A, B y C son interfaces. D es una clase abstracta. Viendo el diagrama modular de la jerarquía de clases, marca las opciones verdaderas.
C extends A, B
E extends D implements A, C
D extends B
E extends D implements A, B, C
E implements D extends A, C
C implements A, B
D implements B
La conexión directa entre A y E es redundante. Si la quitamos el diagrama sería equivalente.
Selecciona las opciones que sean interfaces (API Java 8).
Map<K, V>
AbstractCollection<E>
Queue<E>
Stack<E>
Iterable<T>
Dado este diagrama de jerarquía, ¿cuál sería la salida del siguiente programa?
D obj = new E(); if (obj instanceof A) System.out.println("Verdadero"); else System.out.println("Falso");