接口中私有方法
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(); } }