title: Action-listener implemented in Abstract Class does not get inherited by the classes who extend it
body: <p>Happy holidays to everyone,</p>
  
  <p>Here is a use case of the situation i am trying to understand.</p>
  
  <pre><code>public abstract class Animal extends JButton implements ActionListener {
      private boolean actionFlag = false;
  
      //some constructor
      //some functions
  
      @Override
      public void actionPerformed(ActionEvent actionEvent) {
          this.actionFlag = true;
          System.out.println(this.actionFlag);
      }
  
  }
  
  public class Tiger extends Animal {}
  
  public class Bear extends Animal {}
  </code></pre>
  
  <p>When for example <code>Tiger</code> and <code>Bear</code> objects getting created and they are BTN's cause the abstract method extends the <code>JButton</code> class, These buttons when getting pressed their respective <code>ActionPerformed()</code> function will get called, since I haven't overidden the <code>actionPerformed</code> func to each of these classes separately they will inherit the <code>actionPerformed()</code> from their parent class which is <code>Animal</code>, I believe I'm correct so far, if not feel free to correct me.</p>
  
  <p>Now since all these observations are correct, when I click the bear button for example I should see that the message in my output equals to "true".</p>
  
  <p>That's the problem, nothing appears on my console and it looks like the <code>actionListener</code> of the base class is not triggered at all .
  (The buttons on the GUI are <code>setEnabled(true)</code> so the interaction is not a problem)</p>
  
  <p>What are the possible causes of this? what am I missing here?</p>
  
  <p><strong>Same thing happens with the <code>paintComponent()</code> function, but I believe that if I understand the error on the <code>actionListener</code> then it's kind of straightforward)</strong></p>