java 9新特性 接口方法私有化

接口方法私有化的作用

當我們在一個接口里寫多個默認方法或者靜態(tài)方法的時候,可能會遇到程序重復的問題。我們可以把這 些重復的程序提取出來,創(chuàng)建一個新的方法,用private進行修飾,這樣就創(chuàng)造了一個只有接口可以調用 的私有方法。

package com.muziwk.dao;

public interface UserDao {
    default void methodA(){
        System.out.println("methodA...");
        System.out.println("A....");
        System.out.println("B....");
        System.out.println("C....");
    
    }
    
    default void methodB(){
        System.out.println("methodB...");
        System.out.println("A....");
        System.out.println("B....");
        System.out.println("C....");
    }
}

存在的問題:

以上代碼的methodA與methodB存在著代碼冗余問題,我們可以把這部分公共的方法抽 取成私有的方法提供給接口內部去使用。

接口私有方法的作用:

解決接口中默認方法與靜態(tài)方法代碼重復的問題

接口定義私有化方法

package com.muziwk.dao;

public interface UserDao {
    default void methodA(){
        System.out.println("methodA...");
        commons();
 }
    
    default void methodB(){
        System.out.println("methodB...");
        commons();
 }
    
//定一個私有的方法,把重復部分的代碼抽離出來。然后在methodA與methodB方法內部去調用。
//私有方法只能在本類中調用,這里包括接口的實現(xiàn)類也不能調用。
private void commons(){
    System.out.println("A....");
    System.out.println("B....");
    System.out.println("C....");
    
 }
    
}

測試代碼

package com.muziwk.dao.impl;
import com.muziwk.dao.UserDao;

public class UserDaoImpl implements UserDao {
    public static void main(String[] args) {
    UserDaoImpl userDao = new UserDaoImpl();
    userDao.methodA();
    userDao.methodB();
        

    }
}

小結

清楚接口方法私有化的目的?

    解決靜態(tài)或者是默認方法代碼重復的問題。 

如何在接口中定義私有化的方法以及調用?

    在接口中使用private修飾方法即可。 在方法的內部去調用。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容