Ciekawa rzecz dzieje się w Javie, gdy używasz klasy abstrakcyjnej do implementacji interfejsu: może brakować niektórych metod interfejsu (tj. Nie ma ani abstrakcyjnej deklaracji, ani rzeczywistej implementacji), ale kompilator nie narzeka.
Na przykład, biorąc pod uwagę interfejs:
public interface IAnything {
void m1();
void m2();
void m3();
}
Następująca klasa abstrakcyjna zostaje radośnie skompilowana bez ostrzeżenia lub błędu:
public abstract class AbstractThing implements IAnything {
public void m1() {}
public void m3() {}
}
Czy możesz mi wytłumaczyć dlaczego?
:w
z plików.