1.接口默认方法

在java8中接口可以实现默认方法 ,使用default 关键字

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接口但实现类 。
所以接口默认方法特性主要是主要是为了方便类库设计人员,降低维护成本,增加接口的可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值