介面中私有方法
阿新 • • 發佈:2022-04-04
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(); } }