接口私有方法
原文: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...