title: Are static methods inherited in Java?
body: <p>I was reading <em>A Programmer’s Guide to
  Java™ SCJP Certification</em> by Khalid Mughal.</p>
  
  <p>In the Inheritance chapter, it explains that</p>
  
  <blockquote>
    <p>Inheritance of members is closely tied to their declared
    accessibility. If a superclass member is accessible by its simple name
    in the subclass (without the use of any extra syntax like super), that
    member is considered inherited</p>
  </blockquote>
  
  <p>It also mentions that static methods are not inherited. But the code below is perfectlly fine:</p>
  
  <pre><code>class A
  {
      public static void display()
      {
          System.out.println("Inside static method of superclass");
      }
  }
  
  class B extends A
  {
      public void show()
      {
          // This works - accessing display() by its simple name -
          // meaning it is inherited according to the book.
          display();
      }
  }
  </code></pre>
  
  <p>How am I able to directly use <code>display()</code> in class <code>B</code>? Even more, <code>B.display()</code> also works.</p>
  
  <p>Does the book's explanation only apply to instance methods?</p>