I have a strange class that has a interface object as attribute. What does it mean?
public interface Acceptor{
public void accept(Thing thing);
public boolean hasSpace();
}
public class Box{
private final Acceptor acceptor;
public Box(Acceptor acceptor){
this.acceptor = acceptor;
}
public void acceptor(Thing thing){
acceptor.accept(thing);
}
public void hasSpace(){
return acceptor.hasSpace();
}
}
Say I want to create an instance of Box, how?