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();
}
}
![]()