title: Mixing private and public/protected methods of the same name causes multimethods to be disabled and is forbidden to avoid surprising behaviour
body: <p>I just upgraded one of my Grails apps to 2.2.0 which is using Groovy 2.0 and I am now getting this compile error:</p>
  
  <blockquote>
    <p>Mixing private and public/protected methods of the same name causes
    multimethods to be disabled and is forbidden to avoid surprising
    behaviour. Renaming the private methods will solve the problem.</p>
  </blockquote>
  
  <p>Based on the following code:</p>
  
  <pre><code>def getRootDomain(key) { }
  
  private getRootDomain() { }
  </code></pre>
  
  <p>It's an easy fix but I'd really like to understand the why better.  Can someone explain this to me?</p>