1.接口默认方法_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 1.接口默认方法

1.接口默认方法

 2018/5/29 0:11:46  gundam_  程序员俱乐部  我要评论(0)
  • 摘要:在java8中接口可以实现默认方法,使用default关键字packagecom.dx;publicinterfaceCaculate{defaultintsum(inti,intk){returni+k;}voidsayHello(Stringmsg);}当然实现接口的类可以选择实现或者不实现默认接口方法。提问:为什么要新加入默认方法的特性呢?假设一个场景,现在有一个接口,而且有很多实现类都实现了这个接口,如果要对这个接口添加新的方法,那么按照接口语义所有子类都必须实现这个方法
  • 标签:方法 接口
在java8中接口可以实现默认方法 ,使用default 关键字
class="java">
package com.dx;

public interface Caculate {


    default int sum( int i,int k){
       return  i+k;
    }

      void sayHello(String msg);
}


当然实现接口的类可以选择实现或者不实现默认接口方法。

提问:为什么要新加入默认方法的特性呢?

假设一个场景,现在有一个接口,而且有很多实现类都实现了这个接口,如果要对这个接口添加新的方法,那么按照接口语义所有子类都必须实现这个方法,在很多大型的系统中这将是一场噩梦,谁知道将来或许又会添加新的改动,这是接口的一个弊端。当然你可能会问为什么不用抽象类呢?(不想回答)

现在Java新版本的开发就遇到这么一个问题,List 接口中需要添加Stream API。这就会导致两个问题:a .Java版本变更需要满足向下兼容 b.需要修改所有List接口但实现类  。
所以接口默认方法特性主要是主要是为了方便类库设计人员,降低维护成本,增加接口的可扩展性
上一篇: Fabric-sdk-java导入项目异常 下一篇: 没有下一篇了!
发表评论
用户名: 匿名