接口中可以含有變量和方法。但是,接口中的變量會被隱式地指定為public static final變量(並且只能是public static final變量,用private修飾會報編譯錯誤),而方法會被隱式地指定為public abstract方法且只能是public abstract方法(用其他關鍵字,比如private、protected、static、 final等修飾會報編譯錯誤),並且接口中所有的方法不能有具體的實現,也就是說,接口中的方法必須都是抽象方法。
這些都是大家熟知的,但是我想說的是:
包的調用,使得接口中的抽象方法能直接使用,例如Iterator接口中的方法,可以直接調用
Collection c1 = new ArrayList();
c1.add("123");
c1.add("456");
c1.add("789");
Iterator it = c1.iterator();
while(it.hasNext();)
System.out.println(it.next());
這裡著重強調包的調用。