接口的私有方法定义与接口的私有方法使用
接口的私有方法定义
私有方法的使用
私有方法:只有默认方法可以调用。
私有静态方法:默认方法和静态方法可以调用。
如果一个接口中有多个默认方法,并且方法中有重复的内容,那么可以抽取出来,封装到私有方法中,供默认方法
去调用。从设计的角度讲,私有的方法是对默认方法和静态方法的辅助。同学们在已学技术的基础上,可以自行测
试。
接口的私有方法使用
定义接口:
package day01.quanbu; /* 间题描述; 我们需要抽取一个共有方法,用来解决两个默认方法之间重复代码的问题但是这个共有方法不应该让实现类使用,应该是私有化的。 解决方案; 从Java 9开始,接口当中允许定义私有方法。 1.-普通私有方法,解决多个默认方法之间重复代码问题格式: private返回值类型方法名称(参数列表){方法体 ) 2.静态私有方法,解决多个静态方法之问重复代码问题格式: private static返回值类型方法名称(参数列表){ 方法体 */ public interface MyInterfacePrivateA{ public default void methodDefe1(){ System.out.println("默认方法1"); System.out.println("AAA"); System.out.println("BBB"); System.out.println("CCC"); } public default void methodDefe2(){ System.out.println("默认方法2"); System.out.println("AAA"); System.out.println("BBB"); System.out.println("CCC"); } public default void methodCommon(){ System.out.println("AAA"); System.out.println("BBB"); System.out.println("CCC"); } }
package day01.quanbu; public interface MyInterfacePrivateB { public static void methodDefault1() { System.out.println("静态方法1"); methodStastic(); } public static void methodDefault2() { System.out.println("静态方法2"); methodStastic(); } public static void methodStastic(){ System.out.println("AAA"); System.out.println("BBB"); System.out.println("CCC"); } }
package day01.quanbu; public class MyInterfacePrivateAImpl implements MyInterfacePrivateA { public void methodAnother() { // 直接访问到了接口中的默认方法,这样是错误的! // methodCommon(); } }
package day01.quanbu; public class Demo04Interface { public static void main(String[] args) { MyInterfacePrivateB.methodDefault1(); MyInterfacePrivateB.methodDefault2(); //错误写法 // MyInterfacePrivateB.methodStastic(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)