java介面的default方法和 static方法
阿新 • • 發佈:2022-04-18
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); } }