title: How to properly design interface
body: <p>I have two classes. Let's call them <code>PostClass</code> and <code>CommentClass</code>. Both classes implement the <code>Reportable</code> interface:</p>
  
  <pre><code>public interface Reportable {
  
      void report();
  
      boolean isReported();
  
      . . .
  </code></pre>
  
  <p>Now I need to add two additional methods to each one of the classes. These methods logically fit into the same interface but needs to have different names. For example:</p>
  
  <p><code>PostClass</code>    will have methods -> <code>remove()</code>, <code>restore()</code></p>
  
  <p><code>CommentClass</code> will have methods -> <code>hide()</code>, <code>show()</code></p>
  
  <p><strong>Question</strong>: What would be the preferred way to design this change? The options are as I see it:</p>
  
  <ol>
  <li>Create an additional interface which will extend the <code>Reportable</code> interface.  <em>Problem: Too many interfaces</em></li>
  <li>Add all four new methods into the <code>Reportable</code> interface and then just leave the irrelevant two methods unimplemented in each class. <em>Problem: Untidy/ugly</em></li>
  </ol>