title: How to call `apply` on a superclass in Scala?
body: <p>My class inherits from some base class, and implements <code>apply</code> method with exactly the same signature as the base's one. I want to call base's <code>apply</code> method from my class.
  When I try following:</p>
  
  <pre><code>class MyClass extends BaseClass {
    def apply(k: String, v: String) = {
      super.apply(k, v)
      ...
    }
    ...
  }
  </code></pre>
  
  <p>I got <code>value apply is not a member of BaseClass...</code> compile error.
  How should I call base's apply method from the child class?</p>
  
  <p>Also, why it is possible to override <code>apply</code> method without an <code>override</code> keyword?</p>
  
  <p>EDIT: Actual code:</p>
  
  <pre><code>class OAuthParamsBuilder(helper: OAuthParamsHelper)
  extends KeyValueHandler {
  
    def apply(k: String, v: String): Unit = {
      ...
    }
  }
  
  class OAuthInitSupportBuilder
  extends OAuthParamsBuilder(StandardOAuthParamsHelper) {
  
    /*override*/ def apply(k: String, v: String): Unit = {
      super.apply(k, v)
      ...
    }
  ...
  }
  </code></pre>
  
  <p>EDIT: I've noticed that KeyValueHandler is a trait, this may be an issue.</p>
  
  <pre><code>trait KeyValueHandler extends ((String, String) =&gt; Unit)
  </code></pre>