1. 程式人生 > >abstract interface和interface中的abstract 方法

abstract interface和interface中的abstract 方法

在前面的一片部落格設計模式之Iterator 的例項中,定義了一個Iterator介面,具體程式碼如下所示:

public interface Iterator {    
    public abstract boolean hasNext();    
    public abstract Object next();    
}   
仔細觀察會發現這個介面跟我們往常見到的介面有一些不同。那就是介面中定義的方法是abstract的。平常我們定義一個介面一般都沒有abstract,大多按如下方式定義:
public interface Iterator {
	public boolean hasNext();
	public Object next();
}
後來發現還可以在interface前面加上abstract而對整個程式不造成任何影響,程式如下所示:
public abstract interface Iterator {    
    public abstract boolean hasNext();    
    public abstract Object next();    
}   
那麼這裡抽象介面,介面中的抽象方法,又到底是什麼東西了。其實無論介面和介面中的方法如何宣告,都是抽象的。即使在宣告介面時,並沒有用abstract修飾,但是在編譯的時候編譯器會自動加上abstract。所以根本沒有實質意義上的區分,只不過在寫法上有所不同而已。介面中方法都是抽象的,這個無論用不用修飾符abstract都是一樣的。