title: What does it mean for a function to return an interface?
body: <p>I just saw a member function like this: </p>
  
  <pre><code>public Cat nextCat(GameState state); 
  </code></pre>
  
  <p>But Cat is an interface like this: </p>
  
  <pre><code>public interface Cat {
          void makeCat(GameState state);
  }
  </code></pre>
  
  <p>So I am confused as to how to interpret this. I know what it means when something returns an object or a primitive. But what does it mean to return an interface? How to use this function's return value? </p>