需要java接口的地方的真实例子?
我一直在寻找一个答案有一段时间,所以我很抱歉,如果这已经得到了回答 我很困惑,为什么从接口继承空方法存根在java中被认为是如此有用?这是主要用于我需要尝试理解的更大项目的东西吗?因为虽然我知道接口的所有语法和特性,但在编程时却找不到它们的用途。我试着尽可能多地阅读,但这是一个我无法在脑海中“点击”的概念,我觉得它在阻碍我 或者这只是一个好的软件设计的例子,我需要在某些场景中使用它们,不管我觉得是否需要需要java接口的地方的真实例子?,java,interface,Java,Interface,我一直在寻找一个答案有一段时间,所以我很抱歉,如果这已经得到了回答 我很困惑,为什么从接口继承空方法存根在java中被认为是如此有用?这是主要用于我需要尝试理解的更大项目的东西吗?因为虽然我知道接口的所有语法和特性,但在编程时却找不到它们的用途。我试着尽可能多地阅读,但这是一个我无法在脑海中“点击”的概念,我觉得它在阻碍我 或者这只是一个好的软件设计的例子,我需要在某些场景中使用它们,不管我觉得是否需要 如果有人能给我指出一些代码的方向,或者最好是一个项目,让我在接口必不可少的地方去做,我将不胜
如果有人能给我指出一些代码的方向,或者最好是一个项目,让我在接口必不可少的地方去做,我将不胜感激。您应该使用哪一种,抽象类还是接口?您可以在以下Java文档中找到答案:
有必要吗?他们从来都不是。很多语言都没有这个概念,但它们仍然有效。接口只有在正确使用时才有用,不是必需的 我不明白为什么要从 接口在java中被认为是如此有用 事实并非如此。但您只描述了您所识别的接口的一种效果 用代码块编写“try”和“catch”这样的单词也没有用。有用的是有异常抛出和从中恢复的概念 这是主要用于大型项目的东西吗 是的,不过一旦理解了它,它几乎适用于任何超过五个文件的项目 我需要试着去理解吗 不必匆忙,它会在自己的时间里带来经验 或者这只是一个好的软件设计的例子,我需要使用它 在某些情况下,我是否觉得有必要 是的,这是一个好的软件设计问题。虽然我不认为这是一种需要,但我想这是一个临界点,在这个临界点上,他们是任何专业人士都会称之为需要的更好的解决方案 更重要的是,在某些情况下,具体类本身并不有用 假设您编写的方法采用
ArrayList
参数:如果要向其传递LinkedList
,则需要复制该方法,更改参数类型
但是,除非该方法的实现确实要求它是一个ArrayList
特别是(*),否则您可以将该参数更改为List
,一个接口,并让它接受任何实现
(*)像排序算法这样的事情实际上关心ArrayList和LinkedList,因为
get
和set
方法(分别为常量和线性)的时间复杂度不同。但即使在这里,也不需要ArrayList
:您只需要任何具有恒定时间复杂度实现的List
。这通常由实现RandomAccess
marker接口的具体类表示。请考虑何时要为API提供不同的实现