1. 程式人生 > >Java的介面中是否可以使用靜態方法

Java的介面中是否可以使用靜態方法

介面是極度抽象化的類,介面的所有方法都是抽象的,並沒有具體的實現。而抽象方法是不能使用static進行修飾,有static的方法是不能override的,所以這樣定義接口才有意義。但介面中的變數也都是static  final型別的。

從另外一個方面理解,靜態的變數和方法在記憶體種分配了空間, 而介面只是類的表現形式,是沒有分配空間的。

但是需要注意的是Java8引入了一種新特性,為了使介面具有更大的靈活性,將介面靜態方法來一個預設實現,當然子類可以重寫,也可以不重寫。如下:

public interface Service{

     public static int testMethod(int i){

              return i;

        }

}

則這種情況是允許的,在實現類中可以進行覆蓋testMethod(int i),也可以不進行覆蓋。