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