在接口中正确使用默认关键字

问题描述 投票:1回答:3

我有一个同事,他需要一种可供两个班级使用的方法。

他决定创建一个由这些类实现的新接口。

接口只有一种方法default doThis(String parameter)

它没有任何其他接口方法,没有指示将其他方法添加到此接口。

我认为这是接口的不正确用法,应该以其他方式完成。即,也许是一个类,其类具有允许其他类通过使用该对象来使用它的方法。

有经验的人有什么意见要分享吗?

我可以根据您的评论进行更详细的说明。

java java-8 interface default
3个回答
0
投票

接口中的默认方法*)可以有一个默认实现*)可以被实现类覆盖]

是自JAVA8以来的正确用法。我们可以在界面中使用默认方法,也可以使用抽象方法]


0
投票

理想情况下,您将把方法doThis()放在两个类都扩展的抽象类中。但是,如果您需要实现多重继承,则可以在此处使用接口。

具有可静态调用的静态方法doThis()的类也将起作用。

这完全取决于您如何组织imo。


0
投票

在Java 8中,如果任何一组api具有较长的继承层次结构,并且我们想引入一种在所有较低层的类中都应可用的方法,则在接口中引入default关键字。

因此Java 8中的stream()方法在Collection接口中作为默认方法引入,并且最终在所有基础类中都可用。

就您的情况而言,如果我按您的话说,那么如果您是一个新的开发人员,则应该使用接口->抽象类->实际实现类。

[仅当您使用的是较旧的开发设置,并且已经有通过接口实现的类时,否则可能是在接口中使用默认方法的理想方案。

© www.soinside.com 2019 - 2024. All rights reserved.