轴承外贸网站怎么做,全国公路工程信息网,最新大气房地产企业网站织梦模板,公司网站开发的国内外研究现状目录 1.默认方法
jdk8之前的接口
jdk8的接口
默认方法的用途 1.默认方法
jdk8之前的接口
在jdk8之前接口#xff08;interface#xff09;中可以定义变量和方法#xff0c;变量必须是public#xff0c;static#xff0c;final的#xff1b;方法必须是public#xf…目录 1.默认方法
jdk8之前的接口
jdk8的接口
默认方法的用途 1.默认方法
jdk8之前的接口
在jdk8之前接口interface中可以定义变量和方法变量必须是publicstaticfinal的方法必须是publicabstract的由于这个修饰符是默认必须的我们通常省略不写。
public interface MyInterfaceByJava7 {//public static final int MY_CONSTANT 10;int MY_CONSTANT 10;//public void add();void add();}jdk8的接口
jdk8开始支持使用static、default修饰的方法,可以写方法体并且不需要子类重写。
public interface MyInterfaceByJava8 {int MY_CONSTANT 10;void add();public default void get() {// 默认实现System.out.println(默认get方法);}public static void del() {// 静态方法实现System.out.println(静态del方法);}}
子类只需要重写抽象方法
public class MyInterfaceImpl implements MyInterfaceByJava8 {Overridepublic void add() {System.out.println(子类实现add方法);}} 调用接口的默认方法和静态方法 默认方法的用途 提供新的 API 版本而不破坏二进制兼容性当需要在一个接口中添加新的方法时为了保证已存在的实现类仍然能够正常运行通常需要对所有实现类进行修改。这会带来很大的工作量和风险。通过在接口中添加默认方法可以在不破坏现有代码的情况下提供新的 API 版本。 弥补抽象类的不足在 Java 中抽象类是一种既可以包含抽象方法又可以包含具体方法的特殊类。但是一个类只能继承一个抽象类而可以实现多个接口。通过在接口中添加默认方法可以弥补抽象类的不足使得接口在一定程度上可以像抽象类一样提供通用的实现。 为函数式接口提供便利Java 8 引入了函数式接口即只包含一个抽象方法的接口。函数式接口可以被 lambda 表达式和方法引用所使用。通过在函数式接口中添加默认方法可以提供一些通用的、默认的实现使得函数式接口的使用更加便利。