misleading behavior with jar in java with abstract classes
<p>I faced a very strange behavior that i created 2 class in a package say aa.bb</p>

<p><strong>Code of class aa</strong></p>

<pre><code>         package aa.bb;
         public abstract class aa {
        abstract void deep();
          }
</code></pre>

<p><strong>Code of class bb</strong></p>

<pre><code>       public class bb extends aa{
            @Override
        void deep() {
        }
            }
</code></pre>

<p>Now i created another package say bbc.cc and created one class inside this package.</p>

<p><strong>Code of class cc</strong></p>

<pre><code>          package bbc.cc;
           import aa.bb.bb;
           public class cc extends bb {
            }
</code></pre>

<p>Now the cc class is showing the error <strong>This class must implement the inherited abstract method aa.deep(), but cannot override it since it is not visible from cc. Either make the type abstract or make the inherited method visible</strong></p>

<p>Now a make the jar file of package aa.bb and deleted the aa.bb package from the source code. And added the jar file in the build path. After this the error is coming as previously. Now i added the source code of bb class in aa.bb package and error resolved.
I do not know what is happening behind this.</p>

<p>This is the final directory structure of the project<img src="http://i.stack.imgur.com/7vVPX.png" alt="enter image description here"></p>

<p>Please help me to clear the concept</p>
