title: What are the implicit specifier/modifiers of interface methods in Java 8?
body: <p>I understand that Interface methods are implicitly <code>public</code>. <a href="https://docs.oracle.com/javase/tutorial/java/IandI/interfaceDef.html" rel="nofollow noreferrer">Java Docs Tutorial</a> says</p>
  
  <blockquote>
    <p>All <code>abstract</code>, <code>default</code>, and <code>static</code> methods in an interface are
    implicitly <code>public</code>, so you can omit the public modifier.</p>
  </blockquote>
  
  <p>Out of abstract, static and default, which modifiers are implicitly declared in Java 8.</p>
  
  <p>I thought <code>abstract</code> was not implicitly declared anymore as Java 8 introduced <code>default</code> method in interfaces, but I still get a <strong>warning in Intellij IDEA</strong>.</p>
  
  <blockquote>
    <p>Modifier '<code>abstract</code>' is redundant for interface methods.</p>
  </blockquote>
  
  <pre><code>public interface TestInterface {
      abstract int print();  // abstract redundant ?.
      int print2(); //legal.but public or public abstract ?.
  }
  </code></pre>