Java 9接口中私有方法的规则是什么?
Java的9添加了新的功能,私有 方法 到接口。可以使用private 修饰符定义private方法。从Java9 开始,我们可以在接口中添加私有 和私有 静态 方法 。
接口中私有方法的规则:
私有方法在接口中具有主体,这意味着我们不能像在接口中通常那样被声明为普通的抽象方法。如果我们试图声明一个没有主体的私有方法,那么它会抛出一个错误,提示“此方法需要主体而不是分号”。
我们不能在接口中同时使用私有 修饰符和抽象 修饰符。
如果我们要从接口中的静态方法访问私有方法,则可以将该方法声明为私有静态方法,因为我们无法静态引用非静态 方法。
从非静态上下文使用的私有静态方法意味着可以从接口中的默认方法调用它。
语法
interface <interface-name> { private methodName(parameters) { //一些陈述 } }
示例
interface TestInterface { default void methodOne() { System.out.println("This is a Default method One..."); printValues(); // calling a private method } default void methodTwo() { System.out.println("This is a Default method Two..."); printValues(); // calling private method... } private void printValues() { // private method in an interface System.out.println("methodOne() called"); System.out.println("methodTwo() called"); } } public class PrivateMethodInterfaceTest implements TestInterface { public static void main(String[] args) { TestInterface instance = new PrivateMethodInterfaceTest(); instance.methodOne(); instance.methodTwo(); } }
输出结果
This is a Default method One... methodOne() called methodTwo() called This is a Default method Two... methodOne() called methodTwo() called