title: What is the correct way to write javadoc in abstract methods
body: <pre><code>public interface ISomething
      /**
       * This method does something!
       */
      public void something();
  }
  
  public abstract class AbstractSomething implements ISomething
  {
      /**
       * See {@link #doSomething()}
       */
      public final void something()
      {
          doSomething();
          // Do something else...
          ...
      }
  
      protected abstract void doSomething();
  }
  
  public class ConcreteSomething extends AbstractSomething
  {
  
      /**
       * Concrete implementation of doSomething(). It does... something!
       */
      @Override
      protected void doSomething()
      {
          // Actually do something...
          ...
      }
  }
  </code></pre>
  
  <p>So I have a class hierarchy that looks like this one. The idea is to use the public final something() - then abstract - doSomething() pattern so that extending classes would be obligated to call super(), e.g. 
  <a href="https://stackoverflow.com/questions/4217013/how-to-force-derived-class-to-call-super-method-like-android-does">Andrzej answer's</a></p>
  
  <p>Then, I will eventually have several implementations that extend AbstractSomething. The clients of this code will then instantiate these implementations and use the ISomething methods.</p>
  
  <p>Something like this:</p>
  
  <pre><code>public class Main
  {
      public static void main(String[] args)
      {
          ConcreteSomething concrete = new ConcreteSomething();
          concrete.something();
      }
  }
  </code></pre>
  
  <p>So the question is, using this design idiom is there a correct way to write a good javadoc for the hierarchy?</p>
  
  <p>By correct I mean:
  When clients call concrete.something() I'd want them to see the ConcreteSomething#something() javadoc. Since the method is final, however, I can't simply override it and write a concrete javadoc.
  In addition, my clients won't see the doSomething() method since it's protected so I can't put the concrete javadoc in there too.</p>
  
  <p>So in other words, I probably need the <strong>opposite of {@InheritDoc}</strong> :)</p>
  
  <p>Any suggestions?</p>