What is "public abstract interface" in Java?
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://stackoverflow.com/questions/7202616/java-abstract-interface">Java abstract interface</a>  </p>
</blockquote>



<p>When I wondered the implementation of <code>MenuItem.setOnMenuItemClickListener()</code> method, I opened the implementation and this is what I see :</p>

<pre><code>// Compiled from MenuItem.java (version 1.5 : 49.0, no super bit)
public abstract interface android.view.MenuItem {

  // Method descriptor #7 ()I
  public abstract int getItemId();

  // Method descriptor #7 ()I
  public abstract int getGroupId();

  // Method descriptor #7 ()I
  public abstract int getOrder();

 //...goes like that

}
</code></pre>

<p>As you can see, <code>android.view.MenuItem</code> has two qualifier that I always know they have similiar meaning in programming and mostly for abstraction or force developer.</p>

<p>So what does it mean now?</p>

<p><strong>Difference between Abstract class and interface :</strong></p>

<blockquote>
  <p>Unlike interfaces, abstract classes
  can contain fields that are not static
  and final, and they can contain
  implemented methods. Such abstract
  classes are similar to interfaces,
  except that they provide a partial
  implementation, leaving it to
  subclasses to complete the
  implementation. If an abstract class
  contains only abstract method
  declarations, it should be declared as
  an interface instead.</p>
  
  <p>Multiple interfaces can be implemented
  by classes anywhere in the class
  hierarchy, whether or not they are
  related to one another in any way.
  Think of Comparable or Cloneable, for
  example.</p>
  
  <p>By comparison, abstract classes are
  most commonly subclassed to share
  pieces of implementation. A single
  abstract class is subclassed by
  similar classes that have a lot in
  common (the implemented parts of the
  abstract class), but also have some
  differences (the abstract methods).</p>
</blockquote>

<p>Source : <a href="http://download.oracle.com/javase/tutorial/java/IandI/abstract.html" rel="nofollow">http://download.oracle.com/javase/tutorial/java/IandI/abstract.html</a></p>
