这篇文章主要介绍java8中什么是接口默认方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
java8已经发布很久,而且毫无疑问,java8是自java5(2004年发布)之后的最重要的版本。其中包括语言,编译器,库,工具和JVM等诸多方面的新特性.Java8新特性列表如下:
- <李>接口默认方法李> <李>函数式接口李> <李>λ表达式李> <李>方法引用李> <李> 李> <李>可选流类李> <李>日期API李> <李> Base64李> <李>重复注解与类型注解李>
<强> 1,什么是接口默认方法
强>
从java8开始,程序允许在接口中包含带有具体实现的方法,使用默认修饰,这类方法就是默认方法。默认方法在接口中可以添加多个,并且java8提供了很多对应的接口默认方法。
<强> 2,设计接口默认方法好处
强>
使用接口编程的好处是的开发是面向抽象而不再是面向具体来编程,使得程序变得很灵活,缺陷是,当需要修改接口时候,此时对应需要修改全部实现该接口的类,举个例子,java 8之前对于我们常用的集合框架没有foreach方法,通常能想到的解决办法是在JDK里给相关的接口添加新的方法及实现。从java8开始,引入了接口默认方法,这样的好处也是很明显的,首先解决了java8以前版本接口兼容性问题,同时对于我们以后的程序开发,也可以在接口子类中直接使用接口默认方法,而不再需要再各个子类中各自实现响应接口方法。
<强> 3,默认方法强>
jdk8中,接口可以包含实现方法,需要使用默认修饰,此类方法称为默认方法。默认方法在接口中必须提供实现,在实现类中可以按需重写。默认方法只能在实现类中或通过实现类对象调用。注意:当多个父接口中存在相同的默认方法时,子类中以就近原则继承。
公共接口IMathOperation {/* * *定义接口默认方法支持方法形参 */默认空print () { System.out.println(“这是数值运算基本接口…“); } }
<强> 4,静态方法强>
静态方法即通过静态修饰的方法。接口中静态方法页也必须实现,提供了可以直接通过接口调用方法的方式。
公共接口IMathOperation {/* * *定义接口默认方法支持方法形参 */默认空print () { System.out.println(“这是数值运算基本接口…“); }/* * *定义静态默认方法 */静态空白版本(){ System.out.println(“这是1.0版简易计算器“); } }
<强> 5,接口默认方法使用强>
定义IMathOperation接口并提供默认打印方法
公共接口IMathOperation {/* * *定义接口默认方法支持方法形参 */默认空print () { System.out.println(“这是数值运算基本接口…“); }/* * *定义静态默认方法 */静态空白版本(){ System.out.println(“这是1.0版简易计算器“); }/* * *整数加法运算方法 * @param * @param b * @return */公共int添加(int, int b); }
<强>子类实现强>
定义MathOperationImpl子类实现IMathOperation接口
这里可以看的到,在实现IMathOperation接口时可以选择实现(也可以不实现,在子类方法中直接使用)接口默认方法。
/* * *定义手机接口提供默认信息方法 */公共接口电话{ 默认的无效信息(){ System.out.println(“这是一部手机“); } }/* * *定义小蜜蜂子接口并继承手机父接口同时也提供信息方法 */小蜜蜂公共接口扩展电话{ 默认的无效信息(){ System.out.println(“这是一部小米手机“); } }/* * *实现电话小蜜蜂接口 */公共类M2sPhone实现电话、小蜜蜂{ 公共静态void main (String [] args) { 新的M2sPhone () . info (); } } 打印结果: 这是一部小米手机java8中什么是接口默认方法