l          Interface 
 
1.  class YourClass{ } 
2.  interface YourInterface 
3.  { 
4.     void a(); 
5.     //static final void b(); 
6.     public static final int var = 1; 
7.  } 
8.  public class MyInterfaceClass extends YourClass implements YourInterface 
9.  { 
10.    interface Interface1{ } 
11.   public void a(){}
  
12.   public abstract interface MyInterface extends Interface1 
13.   { 
14.      public void f(); 
15.      //MyInterface(){} 
16.   } 
17.   public static void main(String args[]) 
18.   { 
19.      //new MyInterface(); 
20.   } 
21. } 
   
| 
 可以  | 
 l           Line 12:interface可以繼承多個super-interface。 
l           Line 2、10、12:interface可使用的modifiers只有public及abstract。 
l           Line 6:可以在interface內宣告fields,但這些fields必須是"public static final"(常數constant)。"public static final"可以省略,但不可以是blank final,即一定得設定初始值,因此interface內不可能會定義任何的instance variable。  |  
| 
 不可以  | 
 l           Line 4、5:不可以在interface內宣告protected、private、static或final method,且interface內的method不可有method body({})。否則會compiler error。 
l           Line 15:interface內不可定義任何的constructor。 
l           Line 19:interface及abstract class不可被被實體化,因尚未定義完整(內含abstract method)。  |  
| 
 注意  | 
| 
 class  | 
 l           Line 11:若一個class implements某個interface,這個class就必須實做(implement)這個interface內所定義的所有abstract methods(即長出method body{}來),否則這個class必須宣告為abstract class。 
l           Line 8:一個class只能extends一個superclass,但可以implements一個以上的interface,而且implements子句不可出現在extends子句之前。class會去implements interface主要目地是為了多型(polymorphism)。  |  
| 
 method  | 
 l           Line 4、5:在interface內的method不管是否有加public abstract,一定都是public abstract method。  |   
  |   
  来自:【 Garfield 的 SCJP 閱讀筆記 】  
 
  |