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?
 
     
     
    