Una cosa curiosa accade in Java quando si utilizza una classe astratta per implementare un'interfaccia: alcuni dei metodi dell'interfaccia possono mancare completamente (cioè non è presente né una dichiarazione astratta né un'implementazione effettiva), ma il compilatore non si lamenta.
Ad esempio, data l'interfaccia:
public interface IAnything {
void m1();
void m2();
void m3();
}
la seguente classe astratta viene allegramente compilata senza un avviso o un errore:
public abstract class AbstractThing implements IAnything {
public void m1() {}
public void m3() {}
}
Puoi spiegare perché?
:wuno dei file.