前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教你在Java接口中定义方法

教你在Java接口中定义方法

作者头像
哲洛不闹
发布2018-09-14 12:01:06
4220
发布2018-09-14 12:01:06
举报
文章被收录于专栏:java一日一条

基本上所有的Java教程都会告诉我们Java接口的方法都是public、abstract类型的,没有方法体的。

但是在JDK8里面,你是可以突破这个界限的哦。

假设我们现在有一个接口:TimeClient,其代码结构如下:

接下来,SimpleTimeClient类实现了TimeClient接口,具体代码如下:

现在假设你想在接口TimeClient中添加一个新功能,通过这个功能我们可以指定我们所在的时区。

随着TimeClient的变化,你不得不修改你的SimpleTimeClient类,实现getZonedDateTime方法。一般来说,设置时区这个功能会是各个TimeClient实现类中通用的一个功能。这个时候,你通常会选择再定义一个AbstractTimeClient类来实现getZonedDateTime方法。而在JDK8中,你可以选择直接在接口中来实现该方法(interface已经把手伸到abstract class的地盘了)。

从上面的例子,我们可以看到通过static和default修饰符我们可以直接在接口中实现方法体,同时不要忘记,任何在接口中方法声明都是public类型的哦。

OK,现在我们需要一个新的接口:AnotherTimeClient,它得继承TimeClient接口。那么,对于TimeClient接口中定义的getZonedDateTime方法,你可以做如下三种处理:

  1. 重新声明getZonedDateTime方法,使它变成abstract类型。
  2. 重新定义getZonedDateTime方法。
  3. 直接继承。

而static方法和我们在类里面定义的static方法概念一致。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java一日一条 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档