Witam
Ostatnio spotkałem się z zapisem gdzie interfejs został utworzony wewnątrz klasy. Interfejs ten posiadał metodę której ta klasy już nie mogła zaimplementować ponieważ klasa ta nie mogła implementować tego interfejsu. Aby zaimplementować tę metodę musiałem w mainie stworzyć klasę anonimową w której mogłem napisać ciało tej metody. Czy mógłby ktoś wyjaśnić w jakich celach używa się takich rozwiązań, do czego to sie przydaje ? Czy w ten sposób tworzy się zdarzenia w java i czy to jedyna droga ?
Podrzucam kod
KLASA
package pl;
public class Car implements IAccelerate{
private int speed;
public Car (int speed){
this.speed=speed;
}
ICallback callback;
@Override
public void changeSpeed(int speed) {
this.speed=speed;
if (callback != null)
callback.onSpeedChanged();
}
public void setCallback(ICallback callback) {
this.callback = callback;
}
public interface ICallback {
void onSpeedChanged();
}
}
MAIN
package pl;
public class Main {
public static void main(String[] args) {
Car obiekt1 = new Car(100);
obiekt1.setCallback(new Car.ICallback() {
@Override
public void onSpeedChanged() {
System.out.println("zmieniles predkosc");
}
});
obiekt1.changeSpeed(111);
}
}