我应该使用Interface或抽象类?

时间:2013-08-20 12:07:16

标签: java interface abstract-class

在搜索了谷歌并阅读了很多内容之后,我得出结论,我可以决定何时使用界面以及何时使用抽象类,除了

如果所有方法都是抽象的和公开的,将来不需要添加任何方法。

所以我想知道在出现上述情况时我使用的选项(接口或抽象类)。

4 个答案:

答案 0 :(得分:1)

Java不支持多个inheritance,因此我们只能extends一个类,因为最好使用interfaces。但根据情况,这可能会有所不同。我的观点是最佳做法,interface大多数情况下abstract class优于{{1}}。

答案 1 :(得分:1)

如果必须在不同实体上定义一组常见行为,则需要使用接口。

如果要在共享通用功能的相关实体之间进行区分,请使用抽象类。然后,抽象类可以保存公共功能并定义子类应该使用的抽象方法来定义它们的特定行为。

请记住,虽然一个类只能扩展另一个类,但它可以从多个接口继承。

答案 2 :(得分:0)

If all the methods are abstract and public and in future no need to add any
method

在接口中,所有函数默认为public和abstract,而抽象类可以具有非抽象方法。所以你有答案!

答案 3 :(得分:0)

当抽象类以实现方法的形式携带行为时,最好使用抽象类,这些方法的功能对子类很有用。

在你的情况下,你应该去一个界面。