Java 为什么要使用接口,而我们可以将所有方法抽象化?
在抽象类中,我们可以将所有方法抽象,这样它就可以像接口一样工作,那么为什么要使用接口呢??我能想到的一个原因是我们可以实现多个接口,而不是扩展多个类。。是否涉及任何与设计或性能相关的问题???您已经得到了答案。使用接口,我们可以强制执行多种类型的行为,因为使用类对您不起作用。例如,您可以将类强制为IComparable和INumerable,但是如果您希望使用类来执行此操作,则这是不可能的 在设计方面,最好使用Java 为什么要使用接口,而我们可以将所有方法抽象化?,java,Java,在抽象类中,我们可以将所有方法抽象,这样它就可以像接口一样工作,那么为什么要使用接口呢??我能想到的一个原因是我们可以实现多个接口,而不是扩展多个类。。是否涉及任何与设计或性能相关的问题???您已经得到了答案。使用接口,我们可以强制执行多种类型的行为,因为使用类对您不起作用。例如,您可以将类强制为IComparable和INumerable,但是如果您希望使用类来执行此操作,则这是不可能的 在设计方面,最好使用接口为您定义代码行为/契约/功能定义(请参见列表接口),并在您有一些可重用(通过继承)
接口
为您定义代码行为/契约/功能定义(请参见列表
接口),并在您有一些可重用(通过继承)方法实现的地方使用抽象
类
虽然使用all
abstract
方法是可能的,但在这种情况下,首选接口
。您已经确定了接口允许抽象类不允许的一件事。一个类不能扩展多个抽象类
是否涉及任何与设计或性能相关的事项
没有性能差异
您可能会认为抽象类(事实上,所有类)的单一继承限制使这成为“设计的东西”。当然,这将严重限制您在OO设计中使用多态性
(你也可以争辩说,当你没有接口时,你不能遵循“编程到接口”的准则。然而,这是一个薄弱的论点……一个术语上的诡辩。)你自己回答了这个问题……写下这个问题作为答案,接受它,就完成了。如果除了抽象方法声明之外没有任何代码,那么抽象类应该是一个接口。对于接口,您不能做的是创建受保护的方法。接口方法总是公共的,因此接口定义了真正意义上的“接口”。