Шукаєте відповіді та рішення тестів для PROGRAMACIÓN 3 (34012)? Перегляньте нашу велику колекцію перевірених відповідей для PROGRAMACIÓN 3 (34012) в moodle2026-27.ua.es.
Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!
En Java, una clase abstracta tiene que tener al menos un método abstracto
Emplearemos los interfaces para asegurarnos que una clase implementa, como mínimo, unos métodos concretos. En el caso de que una clase implemente una interfaz y no sobreescriba los métodos definidos en ésta, la clase deberá ser obligatoriamente abstracta.
En Java, los métodos de las interfaces son públicos por defecto.
En Java no existe ningún tipo de herencia múltiple, en C++ sí
En Java (versiones anteriores a Java 8), un interfaz no puede incluir atributos de instancia y sólo puede contener declaraciones de métodos públicos sin implementación y declaraciones de constantes estáticas.
Para cumplir el principio de sustitución de Liskov, siendo 'B' una subclase de 'A', en el siguiente caso
A ref = new B();
para que no se invoque un método de A que B no implementa, debemos sustituir la variable por un downcasting:
B ref2 = (B) ref;
y usar 'ref2' en vez de 'ref'.
Los compiladores han de determinar el tipo de cada expresión de un programa y generar código para realizar las conversiones de tipo oportunas porque, entre otras cosas, el lenguaje objeto suele requerir instrucciones diferentes para operar con los datos en función de su tipo.
Dado este código:
public class Animal {
public void come() {
System.out.println("Animal, ¡come!");
}
}
public class Serpiente extends Animal {
public void come() {
System.out.println("Serpiente, ¡come!");
}
public void repta() {
System.out.println("¡Repta!");
}
}
public class Ave extends Animal {
public void mudaPlumas() {
System.out.println("Ave, ¡muda las plumas!");
}
public void come() {
System.out.println("Ave, ¡come!");
}
}
public class AveVoladora extends Ave {
public void vuela() {
System.out.println("¡Vuela!");
}
}
public class Pinguino extends Ave {
public void come() {
System.out.println("Pingüino, ¡come!");
}
}
public class Cliente {
public Animal F(char c) {
Animal animal = null;
switch (c) {
case 'a':
animal = new Ave();
break;
case 'v':
animal = new AveVoladora();
break;
case 'p':
animal = new Pinguino();
break;
case 's':
animal = new Serpiente();
break;
default:
animal = new Animal();
}
return animal;
}
}
Indica la opción correcta
Dado este código:
public class Animal {
public void come() {
System.out.println("Animal, ¡come!");
}
}
public class Serpiente extends Animal {
public void come() {
System.out.println("Serpiente, ¡come!");
}
public void repta() {
System.out.println("¡Repta!");
}
}
public class Ave extends Animal {
public void mudaPlumas() {
System.out.println("Ave, ¡muda las plumas!");
}
public void come() {
System.out.println("Ave, ¡come!");
}
}
public class AveVoladora extends Ave {
public void vuela() {
System.out.println("¡Vuela!");
}
}
public class Pinguino extends Ave {
public void come() {
System.out.println("Pingüino, ¡come!");
}
}
public class Main {
public void F(char c) {
Animal animal = null;
switch (c) {
case 'a':
animal = new Ave();
break;
case 'v':
animal = new AveVoladora();
break;
case 's':
animal = new Serpiente();
break;
case 'p':
animal = new Pinguino();
break;
default:
animal = new Animal();
}
animal.come();
}
}
Indica lo que se imprime por pantalla al llamar al método F(char c) dadas las siguientes opciones
Indica en que fase del proceso de compilación se realiza la comprobación de tipos.