您当前的位置: 首页 >  Java

liaowenxiong

暂无认证

  • 3浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

为什么Java在后来的版本中,给接口增加了默认方法、静态方法、私有方法?

liaowenxiong 发布时间:2021-11-19 15:17:24 ,浏览量:3

在业务发展过程中,发现某个功能是所有子类都需要的,那么我们该怎么办?给接口增加抽象方法吗?如果直接在接口增加抽象方法,那么所有已经写好的具体实现类就会报编译错误。因为具体类必须实现接口的全部抽象方法。这样就给代码的扩展带来很大的麻烦。如果可以只在接口增加需要的方法,而所有的实现子类就可以直接拿来使用就方便许多了。这就是允许接口添加默认方法的原因。

public interface CRMSystem {
	Client add(Client newGuy);
	Event add(Event e, Client guy);
	Event[] todayEvents();

	// 默认方法,用来升级接口
	public default void myMethodDefault() {
	...
	}
}

那么为什么要在接口增加静态方法呢?一样的道理,静态方法也会被实现子类继承。

那么为什么要在接口增加私有方法呢?私有方法不会被实现子类继承,但是可以通过默认方法或者静态方法来调用,从而运行私有方法中的代码。

public static 返回值类型 方法名(参数列表) {方法体} // 静态方法,不可以是protected,默认是public
private 返回值类型 方法名(参数列表) {方法体} // 私有的普通方法
private static 返回值类型 方法名(参数列表) {方法体} // 私有的静态方法

参阅:https://q.cnblogs.com/q/137311/

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0387s