这是一个新手问题。

我了解接口,抽象类等的技术实现,并且了解程序差异以及如何以及何时使用它们。我了解接口就像没有所有定义类都必须实现的具体定义的强制合同,但我不明白为什么首先要强制执行这样的合同?

例如,我有一个“ H”酒店,其中有些房间可以预订,

interface H{
//example method to implement  
reserveRoom(int n, ...) {}

... other methods
}


另一方面,我有旅行预订网站A1,A2,A3等,它们可能有自己的折扣/佣金计划,可能会向他们的客人加价/减价,但是我没有得到的是它可能会做什么与酒店“ H”的预订政策有关。 H酒店唯一有兴趣以要价填补房间。

请解释为什么需要这样的设计使用接口?

谢谢。

最佳答案

interface视为实现的规则集。如果您遵循规则集,则可以保证消费者可以无缝转换到您的实现。

就像JDBC接口一样。 Java提供了一组接口,就像JDBC一样,数据库供应商也提供了这些接口的实现。

这就是为什么无论连接到哪个数据库,下面的语句都有效。

Statement stmt = conn.createStatement( )


考虑一下,没有接口(JDBC),并且MySql驱动程序将createStatement()更改为makeStatement()。您将不得不更改代码,最终将编写数据库特定的代码

08-04 14:43