1. 程式人生 > 其它 >java介面的default方法和 static方法

java介面的default方法和 static方法

default

當一個介面要新增一些新的公共邏輯,寫了一個新的方法,那麼所有的實現類都需要重寫新方法,如果實現類太多,會非常麻煩。
這時可以使用 default。

  • 介面中的default方法,可以寫方法內容。
  • 介面中的default方法不強制實現類重寫,不會影響到已有的實現類。
  • 介面的實現類,可以呼叫介面中的default方法。

static

  • 介面中的default方法,可以直接通過介面名稱呼叫。

示例:

  • OrderService 介面.
public interface OrderService {
    /**
     * 介面中的變數都是 預設 public static final的,可以不用寫這些修飾符
     */
    String NAME = "static";

    /**
     * static方法,可以直接通過介面名稱呼叫 static方法。
     * 比如 OrderService.selectName();
     *
     */
    static String selectStatic() {
        return NAME;
    }

    /**
     * default方法,可以寫方法內容,實現類不強制重寫 default方法。
     *
     */
    default String selectDefault() {
        return "default";
    }

    String selectOrder();

}
  • 介面實現類:
public class OrderServiceImpl implements OrderService {

    @Override
    public String selectOrder() {
        return "order";
    }

}

  • 測試:
public class InterfaceTest {

    public static void main(String[] args) {
        OrderServiceImpl orderServiceImpl = new OrderServiceImpl();
        //介面的實現類,可以呼叫介面中的default方法。
        String user = orderServiceImpl.selectDefault();
        System.out.println(user);

        // static方法,可以直接通過介面名稱呼叫,無需例項化 
        String name = OrderService.selectStatic();
        System.out.println("OrderService.selectStatic()結果為:"+ name);
    }
}