Interface

类别:Java 点击:0 评论:0 推荐:

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 閱讀筆記 】

本文地址:http://com.8s8s.com/it/it14917.htm