domingo
jun112017
Interfaces, clases abstractas, métodos por defecto
¿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(); } }
Reader Comments