java接口靜態方法


原文鏈接:https://liushiming.cn/2020/02/23/java-static-methods/

概述

Java8帶來了一些全新的特性,包括lambda表達式、函數接口、方法引用、流、可選方法、接口中的靜態方法和默認方法

在本文中,我們將深入討論為什么java8接口新增了默認方法,如何使用默認方法,並討論一些有用的用例。

靜態方法

接口中的靜態方法和類中定義的靜態方法一樣,不屬於特定對象,所以它們不是實現接口的api的一部分,必須使用InterfaceName.staticMethod來調用它們。

為了理解靜態方法如何在接口中工作,讓我們看一個實例:

interface NewInterface { 
  
    // 靜態方法
    static void hello() 
    { 
        System.out.println("Hello, New Static Method Here"); 
    } 
  
    // 抽象方法 
    void overrideMethod(String str); 
} 
  
// 實現類
public class InterfaceDemo implements NewInterface { 
  
    public static void main(String[] args) 
    { 
        InterfaceDemo interfaceDemo = new InterfaceDemo(); 
  
        // 調用接口靜態方法 
        NewInterface.hello(); 
  
        // 調用被覆寫后抽象方法 
        interfaceDemo.overrideMethod("Hello, Override Method here"); 
    } 
  
    // 實現接口方法
    @Override
    public void overrideMethod(String str) 
    { 
        System.out.println(str); 
   

為什么接口要支持靜態方法

接口中的靜態方法背后的思想是提供一種簡單的機制,允許通過將相關的方法內聚在接口中,而不必創建新的對象

抽象類也可以做同樣的事情。主要的區別在於抽象類可以有構造函數、成員變量和方法。

推薦把和只和接口相關的靜態utility方法放在接口中(提高內聚性),而不需要額外創建一些utility類專門去放置這些方法。

參考資料

Baeldung - Static and Default Methods in Interfaces in Java
geeksforgeeks - Static method in Interface in Java


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM