我知道接口不能包含方法体,我们可以在另一个类中实现并可以编写我们的自定义逻辑。但同样的事情也可以通过使用继承与类来实现。接下来为什么接口会出现。如果我们想要覆盖任何方法定义,我们可以继承类,并可以编写我们的自定义代码。接口的确切目的是什么?
答案 0 :(得分:6)
一个原因是一个类可以实现多个接口,但只能从一个类派生。
另一个是,层次完全不相关的类可以实现相同的接口。在没有接口的静态类型语言中,人们通常可以观察到非常深的继承层次结构,只是因为它们不能简单地实现接口而不得不强制导出不相关的类。这通常会违反" Is a" - 继承原则。这样的实现也倾向于拖拽未使用的代码,只是因为它需要继承树继续下去。
tl; dr - 它可以完成,但结果通常是丑陋且不可维护的
答案 1 :(得分:2)
也可以使用接口来避免diamond problem