title: overloading and hiding - differences
body: <p>I prepare for SCJP and I have a bit confusing with this terms from jls.</p>
  
  <p>about overloading from jls:</p>
  
  <blockquote>
    <p>If two methods of a class (whether both declared in the same class, or
    both inherited by a class, or one declared and one inherited) have the
    same name but signatures that are not override-equivalent, then the
    method name is said to be overloaded.</p>
  </blockquote>
  
  <p>about hiding:</p>
  
  <blockquote>
    <p>If a class C declares or inherits a static method m, then m is said to
    hide any method m', where the signature of m is a subsignature
    (§8.4.2) of the signature of m', in the superclasses and
    superinterfaces of C that would otherwise be accessible to code in C.</p>
  </blockquote>
  
  <p>looks like hiding is part of overloading for static methods only.</p>
  
  <p>But these definitions are quite ornate. please clarify difference.</p>
  
  <p>Can you provide concrete examples which allow to feel the difference?</p>