接口中私有方法

package MyInterFace02;

/**
 * FileName: Inter
 * Author:   lps
 * Date:     2022/4/4 21:18
 * Sign:刘品水 Q:1944900433
 * /**
 *  2  * 问题描述:
 *  3  * 我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题
 *  4  * 但是这个共有方法不应该让实现类使用,应该是私有化的。
 *  5  *
 *  6  * 解决方案:
 *  7  * 从java 9开始,接口当中允许定义私有方法。
 *  8  * 1、普通私有方法,解决多个默认方法之间重复代码问题
 *  9  * 格式:
 * 10  * private 返回值类型方法名称(参数列表){
 * 11  *     方法体
 * 12  * }
 * 13  * 2、静态私有方法,解决多个静态方法之间重复代码的问题
 * 14  * 格式:
 * 15  * private static 返回值类型 方法名称(参数列表){
 * 16  *     方法体
 * 17  * }
 * 18  
 */
public interface Inter {
    private void show(){
        System.out.println("初级工程");
        System.out.println("中级工程师");
        System.out.println("高级工程");
    }
    public default void show1() {
        System.out.println("show1");
//        System.out.println("初级工程");
//        System.out.println("中级工程师");
//        System.out.println("高级工程");
        show();
        show2();
        System.out.println("=========");
        method();

    }

    public default void show2() {
        System.out.println("show2");
//        System.out.println("初级工程");
//        System.out.println("中级工程师");
//        System.out.println("高级工程");
        show();

    }

    private static void method(){
        System.out.println("初级工程");
        System.out.println("中级工程师");
        System.out.println("高级工程");
    }
    static void method1(){
        System.out.println("method1");
//        System.out.println("初级工程");
//        System.out.println("中级工程师");
//        System.out.println("高级工程");
        method();

    }
    static void method2(){
        System.out.println("method2");
//        System.out.println("初级工程");
//        System.out.println("中级工程师");
//        System.out.println("高级工程");
        method();
    }

}
public class InterImp implements Inter{

}
package MyInterFace02;

/**
 * FileName: InterDemo
 * Author:   lps
 * Date:     2022/4/4 21:19
 * Sign:刘品水 Q:1944900433
 */
public class InterDemo {
    public static void main(String[] args) {
        Inter i = new InterImp();
        i.show1();
        System.out.println("======");
        i.show2();
        System.out.println("======");
        Inter.method1();
        System.out.println("======");
        Inter.method2();
    }
}

 

posted @ 2022-04-04 21:43  刘品水  阅读(60)  评论(0编辑  收藏  举报