title: Why imported classes take precedence over bundle classes?
body: <p>I know that the specification exactly defines it but cannot get what is the reason for this:</p>
  
  <pre><code>A class space is then all classes reachable from a given bundle’s class loader. 
  Thus, a class space for a given bundle can contain classes from:
  • The parent class loader (normally java.* packages from the boot class path)
  • Imported packages
  • Required  bundles
  • The bundle's class path (private packages)
  • Attached fragments
  </code></pre>
  
  <p>Let's assume:</p>
  
  <ol>
  <li>A bundle declares "import-package: a"</li>
  <li>There is a local class a.X in this bundle</li>
  <li>There is a class a.X in another bundle</li>
  </ol>
  
  <p>new a.X() would load the class from another bundle.</p>
  
  <p>What is the reason that imported classes take precedence over bundle classes? Is it just a consequent continuation of java hierarchical class loading policy?</p>