/**
 * Base class for {@link Foo}.
 *
 * <p>The subclass should implement {@link #bar()}, with the implementation returning a
 * new instance of the foo relevant to that baz.
 *
 * Example:
 * <code>
 *   @Override
 *   protected Foo bar() {
 *     return new Foo();
 *   }
 * </code>
 *
 * The subclass should call {@link #get()} to get the foo object,
 * and should not cache it in the subclass.
 * Example:
 * <code>
 *   @Annotation("something")
 *   public void thing() {
 *   }
 * </code>
 *
 * @param <T> concrete subclass
 */
class Test {
  /**
   * Field
   *
   * Example:
   * <pre><code>
   *   @Annotation("something")
   *   public void thing() {
   *   }
   * </code></pre>
   *
   * @param asd
   */
  int x() {}

  /**
   * Inline <code>foo</code>.
   */
  int y() {}
}