title: Why type is referred in case of method overriding?
body: <p>I have understanding that  in case of method overriding <strong>Object</strong> is checked instead of <strong>Type</strong> </p>
  
  <pre><code>class SuperException extends Exception {}
  class SubException extends SuperException {}
  
  class AnotherException extends Exception {}
  class YetAnotherException extends Exception {}
  
  class A {
    void play() throws SuperException, AnotherException {}
  }
  class Reduced extends A {
    void play() throws SuperException {} 
  }
  class Eliminated extends A {
    void play() {} 
  }
  class Narrower extends A {
    void play() throws SubException {}
  }
  class TestPolymorphism {
    public static void main(String[] args) {
      A obj = new Eliminated();
      obj.play();                         // Doubt 1
      Eliminated eobj = new Eliminated(); // Doubt 2
    }
  }
  </code></pre>
  
  <p>Doubt 1: Why play() is referred from class A?</p>
  
  <p>Doubt 2: Why compilation error?</p>