美文网首页
接口的私有方法

接口的私有方法

作者: 十六只猴子王 | 来源:发表于2019-03-26 13:49 被阅读0次

问题描述:
我们需要抽取一个公有方法,用来解决两个默认方法之间重复代码的问题,但这个公有方法不能让实现类使用,应该是私有化的

解决方案:
从java9开始,接口中可以定义私有方法
1.普通私有方法:解决多个默认方法之间的代码重复问题
格式:

private 返回值类型 方法名称(参数列表){
方法体
}

2.静态私有方法,解决多个静态方法之间的代码重复问题
格式:

private static 返回值类型 方法名称(参数列表){
方法体
}
MyInterfacePrivateA

package Demo04;

public interface MyInterfacePrivateA {
    public default void methodDefaultA(){
        System.out.println("默认方法1");
        methodCommon();
    }
    public default void  methodDefaultB(){
        System.out.println("默认方法2");
        methodCommon();
    }
    private  void methodCommon(){
        System.out.println("AAA");
        System.out.println("BBB");
        System.out.println("CCC");
    }
}

MyInterfacePrivateAImpl

public class MyInterfacePrivateAImpl implements MyInterfacePrivateA{
    public static void main(String[] args) {
        MyInterfacePrivateAImpl impl = new MyInterfacePrivateAImpl();
        impl.methodDefaultA();
        impl.methodDefaultB();
    }
}

MyInterfacePrivateB

    public static void methodDefaultA(){
        System.out.println("默认方法1");
        methodCommon();
    }
    public static void  methodDefaultB(){
        System.out.println("默认方法2");
        methodCommon();
    }
    private static void methodCommon(){
        System.out.println("AAA");
        System.out.println("BBB");
        System.out.println("CCC");
    }
}

MyInterfaceStaticBImpl

public class MyInterfaceStaticBImpl implements MyInterfacePrivateB {
    public static void main(String[] args) {
        MyInterfacePrivateB.methodDefaultA();
        MyInterfacePrivateB.methodDefaultB();
    }
}

相关文章

  • 2020-07-04【接口组成更新】

    接口组成更新概述 默认方法 静态方法 私有方法

  • 函数式接口

    函数式接口: 有且仅有一个抽象方法的接口叫做函数式接口。当然接口中可以包含其它类型的方法(默认,静态,私有) 接口...

  • java基础知识(四)

    接口里的普通方法不能有方法实现(方法体);但类方法、默认方法、私有方法都必须有方法实现(方法体)。 ➢ 接口里只能...

  • 接口的私有方法

    问题描述:我们需要抽取一个公有方法,用来解决两个默认方法之间重复代码的问题,但这个公有方法不能让实现类使用,应该是...

  • 抽象类和接口

    1.接口是公开的,里面不能有私有的方法或者变量,是用于让别人使用的,而抽象类是可以有私有的方法或者私有变量的。2....

  • [java]18、函数式接口

    1、概述 有且只有一个抽象方法的接口,称之为函数式接口、当然接口中可以包含其他的方法(默认,静态,私有)使用@Fu...

  • iOS开发 | 修改textField的placeholder的

    textField的placeholder属于私有接口, 只能通过setValue forKey 的方法来更改

  • 新特性 函数式接口

    概述 有且只有一个抽象方法的接口,称之为函数式接口,当然接口中可以包含其它的方法(默认,静态,私有) 定义一个函数...

  • 新增JavaSE 14.JDK8 新特性

    熟练使用Lambda表达式函数式接口 有且仅有一个抽象方法的接口 可以有默认 静态 私有方法 但是抽象方法只能有一...

  • 04 JVM是如何执行方法调用的(下)

    虚方法调用 Java 里所有非私有实例方法调用都会被编译成 invokevirtual 指令,而接口方法调用会被编...

网友评论

      本文标题:接口的私有方法

      本文链接:https://www.haomeiwen.com/subject/rsjgvqtx.html