¿Compilaría y ejecutaría el siguiente código? Si no compila, ¿por qué razón? Si ejecuta, ¿cuál sería la salida?
package prueba;
interface Interfaz1 {
int VARIABLE = 10;
void test1();
default void test2() {
System.out.println("Método por defecto de Interfaz1");
}
}
interface Interfaz2 {
static public final int VARIABLE = 20;
abstract public void test1();
public default void test2() {
System.out.println("Método por defecto de Interfaz2");
}
}
abstract class Clase1 implements Interfaz1, Interfaz2 {
int variable;
public void test1() {
System.out.println("Método test1 de Clase1");
return;
}
public void test2() {
System.out.println("Método por defecto de Clase1");
}
}
class Clase2 extends Clase1 {
public static void main(String args[]) {
Clase1 clase2 = new Clase2();
System.out.println(clase2.variable);
clase2.test1();
clase2.test2();
((Interfaz1) clase2).test1();
((Interfaz2) clase2).test2();
}
}