接口私有方法

原文:https://www.studytonight.com/java-9/interface-private-methods

接口是 Java 中用来实现抽象的一个概念。它包含字段和方法,最初接口只允许抽象方法,但是随着版本的变化,它也允许其他类型的方法。让我们看一下界面改进的简单想法。

在早期的 Java 版本中,接口只能包含公共抽象方法,这些方法必须由实现的类来实现。

Java 8 中,除了公共抽象方法之外,一个接口可以有 静态默认方法

Java 9 中,我们可以在一个接口里面创建私有方法。该接口允许我们声明私有方法,这有助于在非抽象方法之间共享公共代码。

在 Java 9 之前,在接口内部创建私有方法会导致编译时错误。

从 java 9 开始,您可以在接口中添加私有方法私有静态方法。让我们通过一些例子来理解。

举例时间:

在这个例子中,我们在一个接口内部创建了一个私有方法 print() 。因为它是私有的,所以我们不能在接口之外调用它,这就是我们从默认方法调用它的原因。

interface Printable{
    private void print() {
        System.out.println("print...");
    }
    default void print3D() {
        // Calling private method
        print();
    }
}

public class Main implements Printable {
    public static void main(String[] args){
        Printable p = new Main();
        p.print3D();
    }
}

打印...

示例:Java 旧版本(Java9 之前)

如果我们使用像 java 8 这样的 Java 老编译器来执行这段代码,那么编译器会报告一个错误

interface Printable{
    private void print() {
        System.out.println("print...");
    }
    default void print3D() {
        // Calling private method
        print();
    }
}

public class Main implements Printable {
    public static void main(String[] args){
        Printable p = new Main();
        p.print3D();
    }
}

Main.java:2:错误:此处不允许修饰符 private

示例:私有静态方法

像私有方法一样,Java 9 允许在接口内部创建私有静态方法。请看下面的例子。

interface Printable{
    private void print() {
        System.out.println("print...");
    }
    private static void print2D() {
        System.out.println("print 2D...");
    }
    default void print3D() {
        // Calling private methods
        print();
        print2D();
    }
}

public class Main implements Printable {
    public static void main(String[] args){
        Printable p = new Main();
        p.print3D();

    }
}

打印... 打印 2D...