这是一个新手问题。
我了解接口(interface)、抽象类等的技术实现,我确实了解编程差异以及如何以及何时使用它们。我知道接口(interface)就像一个没有具体定义的强制契约(Contract),所有实现类都必须实现,但我不明白为什么首先要强制执行这样的契约(Contract)?
例如,我有一家酒店'H',有一些房间可以预订,
interface H{
//example method to implement
reserveRoom(int n, ...) {}
... other methods
}
另一方面,我有旅游预订网站 A1、A2、A3 等,它们可能有自己的折扣/佣金计划,可能会向上销售/向下销售给他们的客人,但我没有得到的是这可能与“H”酒店预订政策有关吗? H 酒店唯一有兴趣以他们的要价入住房间。
请解释为什么需要这样的使用接口(interface)设计?
谢谢。
最佳答案
将 interface
视为您实现的规则集。如果您遵循规则集,您可以保证消费者能够无缝地转向您的实现。
例如 JDBC 接口(interface)。 Java 提供了一组接口(interface)作为 JDBC,数据库供应商确实提供了这些接口(interface)的实现。
这就是为什么无论您连接到哪个数据库,您下面的声明都有效。
Statement stmt = conn.createStatement( )
考虑一下,没有接口(interface) (JDBC),MySql 驱动程序将 createStatement()
更改为 makeStatement()
。您将不得不更改代码,最终将编写特定于数据库的代码
关于oop - 为什么是接口(interface)而不是普通类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49502709/