丹阳市网站制作,平面设计概述,社群小程序搭建,wordpress relive主题java私有属性和私有方法介绍 Java接口已经比Java版本进行了更多的演变#xff0c;而Java 8和Java 9则有所发展。在本文中#xff0c;我们将介绍接口在Java 8之前的样子以及如何在Java 8和Java 9中得到增强。 Java 8之前的接口 接口将具有一个或多个抽象方法#xff0c;如下… java私有属性和私有方法 介绍 Java接口已经比Java版本进行了更多的演变而Java 8和Java 9则有所发展。在本文中我们将介绍接口在Java 8之前的样子以及如何在Java 8和Java 9中得到增强。 Java 8之前的接口 接口将具有一个或多个抽象方法如下所示 public interface MyInterface {public void doSomething();
} 其实现为 public class MyImplementation implements MyInterface{public void doSomething() {System.out.println(Done in MyImplementation);}public static void main(String[] args) {MyImplementation impl new MyImplementation();impl.doSomething();}}Java 8中的接口 在Java 8中为了增强collections API以支持lambda表达式和新方法必须增强java.util.Collection接口。 这将意味着破坏实现该接口的所有代码。 因此他们在界面中提出了一种称为default方法的东西。 因此现在接口可以具有实现的方法从而为接口的增强提供了空间 public interface MyInterface {public void doSomething();public default void doTheDefaultThing() {System.out.println(Done in a default way!);}
}Java 9中的接口 即使在使用default方法之后接口中也存在一个小的限制即缺少在default方法之间共享代码的构造。 在Java 9中他们引入了private方法这些方法便于在接口中非抽象方法之间共享代码 public interface MyInterface {public void doSomething();public default void doTheDefaultThing() {System.out.println(Done in a default way!);helper();}private void helper() {System.out.println(Calling the helper!!!);}
} 以上界面的增强作用 public static void main(String[] args) {MyImplementation impl new MyImplementation();impl.doSomething();impl.doTheDefaultThing();
}结论 JDK团队显然已经使接口比Java8之前强大得多并且还提供了一种在不破坏客户端代码的情况下增强库中接口的方法。 翻译自: https://www.javacodegeeks.com/2017/12/java-interface-journey-years-java-9-default-private-methods.htmljava私有属性和私有方法