Java的interface中,成員變量的默認修飾符為:public static final
所以我們在interface中定義成員變量的時候,可以
1:public static final String name = "張三";
2:String name = "張三";
以上兩種都可以,老司機一般都是第二種。既然是靜態最終的變量,也就意味着在外面訪問的時候不能修改這個成員變量的值。所以在接口中定義成員變量的,一般都是常量。不會修改的。如果要進行修改的話,定義在接口具體實現類中。
說完成員變量的默認修飾符,順便也提下方法的默認修飾符,方法的默認修飾符是:public abstract
即:公共抽象的,就是用來被實現該接口的類去實現該方法。所以在接口中定義方法時候,也有兩種方式
1:public abstract List<String> getUserNames(Long companyId);
2:List<String> getUserNames(Long companyId);
同樣老司機都是第二種。
接口只是對一類事物屬性和行為的更高次抽象;對修改關閉,對擴展開放,可以說是java中開閉原則的一種體現吧。