title: Cucumber: You're not allowed to extend classes that define step definitions or hooks
body: <p>I have inherited from others a big project of testing whose main Java classes are CommonSteps, CommonBase and CommonScript. They are currently related in this way:</p>
  
  <p>CommonSteps extends CommonBase</p>
  
  <p>CommonBase extends CommonScript</p>
  
  <p>The problem is with the next method when I try to run the project with <code>mvn clean install</code>:</p>
  
  <pre><code>@After
  public void tearDown(Scenario scenario) {
    if (scenario.isFailed()) {
      // Take a screenshot...
      final byte[] screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
      scenario.embed(screenshot, "image/png"); // ... and embed it in the report.
    }
  }
  </code></pre>
  
  <p>I get the error:</p>
  
  <blockquote>
    <p>cucumber.runtime.CucumberException: You're not allowed to extend classes that define step definitions or hooks: steps.CommonSteps extends class common.CommonBase.</p>
  </blockquote>
  
  <p>How could I start working with dependency injection deleting everything related to inheritance?</p>