首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法不用Java实现接口方法?

有没有办法不用Java实现接口方法?
EN

Stack Overflow用户
提问于 2018-05-14 10:50:57
回答 4查看 883关注 0票数 1

我不想让我的课变得抽象起来。例如,我有一个类,它希望实现一个接口,它有大约15-20个方法声明,但是只有4-5个方法对我的类很重要。

还有什么别的办法可以替代吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-05-14 10:54:19

(使类变得抽象)的替代方法是:

  1. 向您不希望在接口本身的类中实现的接口方法提供默认实现(需要Java 8或更高版本)。 例如: 公共接口YourInterface {.默认布尔值someMethod () {返回false;}.}
  2. 使用抛出异常的空体实现所有不希望实现的方法。这种方法在集合框架中很常见。 例如: 公共类YourClass实现YourInterface {.公共布尔值someMethod() {抛出新的UnsupportedOperationException();}.}
票数 7
EN

Stack Overflow用户

发布于 2018-05-14 11:00:12

如果可能,修复基本的设计问题。

如果您可以创建一个有用的类,它只实现20个方法中的5个,这意味着接口实际上是许多独立契约的混乱。将这些独立的契约分离到单独的接口中,并在需要的地方使用所需的任何东西,而不是只部分实现一个巨大的接口。

票数 6
EN

Stack Overflow用户

发布于 2018-05-14 10:55:42

您可以使用默认方法,例如:

代码语言:javascript
复制
interface Common {
    default void actionOne() {
        // nothing to do
    }
    // or
    default void actionTwo() {
        throw new UnsupportedOperationException("Must be implemented if used");
    }
}

或者,您可以拥有多个接口,并且只实现那些重要的接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50328521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档