Una interfaz en Java es similar a una clase, pero el cuerpo de una interfaz solo puede incluir métodos y
final
campos abstractos (constantes).
Recientemente, vi una pregunta, que se ve así
interface AnInterface {
public default void myMethod() {
System.out.println("D");
}
}
Según la definición de interfaz, solo se permiten métodos abstractos . ¿Por qué me permite compilar el código anterior? Cual es la default
palabra clave?
Por otro lado, cuando estaba tratando de escribir el código siguiente, dice modifier default not allowed here
default class MyClass{
}
en vez de
class MyClass {
}
¿Alguien puede decirme el propósito de la default
palabra clave? ¿Solo está permitido dentro de una interfaz? ¿En qué se diferencia de default
(sin modificador de acceso)?