Considering OnCompleteListener is an interface and OnCompleteListenerImpl is a concrete class as follows
### OnCompleteListener interface ####
public interface OnCompleteListener {
public void onComplete();
}
#### OnCompleteListenerImpl ####
class OnCompleteListenerImpl implements OnCompleteListener {
public void onComplete() {
System.out.println("Yeah, the long running task has been completed!");
}
}
How is this
#### Snippet A #####
longRunningTask.setOnCompleteListener(new OnCompleteListener() {
@Override
public void onComplete() {
System.out.println("Yeah, the long running task has been completed!");
}
}
);
different from
#### Snippet B ######
OnCompleteListenerImpl obj = new OnCompleteListenerImpl();
longRunningTask.setOnCompleteListener(obj);