应该总是自己定义接口和抽象类,即使只有一个类扩展它们?我已经在一些小型Java项目上工作了一段时间。我一直看到他们总是创建抽象类并与他们正在编写的其他类接口。但在几乎所有其他情况下,接口只由一个类实现,而抽象类只由另一个类扩展。这是因为多个类没有扩展或实现的范围。 因此,根据我的理解,如果我们知道将有许多其他类可以使用它,我们可以拥有接口和抽象类。在上面的例子中,我觉得应该直接写出具体的课程。并且将来如果需要自己可以修改这些类并创建接口等并使用它。不知何故,我99%肯定我对多态性的使用的理解不符合标准。请让我知道这些概念的正确用法。
答案 0 :(得分:2)
如果要使用多个类,则表示抽象类和接口。如果你只计划一个班级,你也不需要。
如果稍后您需要两个子类,则可以始终将原始类转换为接口。
要记住的一件事是编写接口和抽象类是安全的。如果功能已知且已经创建了骨架,则可以更轻松地测试您的类,这样可以防止错误。
答案 1 :(得分:0)
如果您有几个类似的类来实现/扩展它,那么接口和抽象类是有意义的。如果你目前只有一个子类,但是你知道你可以在某个时候添加更多的子类,那么它们也是有意义的。
但是如果你确切地知道将永远不会有任何其他类似的类,你就不应该使用它们。这只会减慢程序的速度。
答案 2 :(得分:0)
如果要向“客户端”提供API,接口和单一实现可能有意义。
您要做的是首先设计 API (接口),然后将其提供给您的客户端,而无需实现。我看到两个好处:
另外,如果您正在使用要保留向后兼容性的系统,我建议您尽快引入接口,以免日后陷入困境。
否则,我建议您仅在需要时引入接口,并依靠重构工具轻松更改代码。这将使您更容易理解。其他开发人员会为此感谢你。
干杯