Java中的接口是一種重要的語言特征,通過接口可以定義類之間的通用行為規(guī)范和規(guī)則。接口的實現(xiàn)是通過類實現(xiàn)接口中的所有方法來實現(xiàn)的。在Java 8中,還引入了擴展方法(Default Method)的概念,讓接口變得更加強大和靈活。
如下示例是一個簡單的接口和擴展方法的示例:
public interface Greeting { void hello(String name); default void sayHello() { System.out.println("Hello, Everyone!"); } } public class GreetingImpl implements Greeting { @Override public void hello(String name) { System.out.println("Hello, " + name + "!"); } }
在上面的示例中,我們定義了一個Greeting接口,其中定義了hello和sayHello兩個方法。hello方法是普通方法,必須由實現(xiàn)接口的類來實現(xiàn)。而sayHello方法是一個擴展方法,默認實現(xiàn)是輸出"Hello, Everyone!"。在GreetingImpl類中,我們通過實現(xiàn)hello方法來實現(xiàn)接口,而sayHello方法則使用默認實現(xiàn)。
接口的擴展方法還可以帶有參數(shù),如下示例:
public interface Calculator { int sum(int... nums); default String avg(int... nums) { int sum = sum(nums); double avg = (double) sum / nums.length; return "Average is " + avg; } } public class CalculatorImpl implements Calculator { @Override public int sum(int... nums) { int sum = 0; for (int num : nums) { sum += num; } return sum; } }
在上面的示例中,我們定義了一個Calculator接口,其中定義了sum和avg兩個方法。sum方法是普通方法,必須由實現(xiàn)接口的類來實現(xiàn)。而avg方法則是一個擴展方法,默認實現(xiàn)將傳入的整型數(shù)組求平均數(shù)并返回相應的字符串。在CalculatorImpl類中,我們通過實現(xiàn)sum方法來實現(xiàn)接口,而avg方法則使用默認實現(xiàn)。