Java 哪一个是首选:抽象类还是接口?

Java 哪一个是首选:抽象类还是接口?,java,class,inheritance,interface,abstract,Java,Class,Inheritance,Interface,Abstract,我在大型应用程序中遇到了一些设计构造: 抽象类的独立使用 独立使用接口 实现接口的抽象类 包含另一个接口的接口 作为java新手,如果有人能够准确指出在特定情况下一种方法相对于另一种方法的优势,我将不胜感激。如果我们不使用这样的结构,我们会错过什么 使用抽象类,您可以拥有不需要由继承抽象类的类实现的函数。(看) 使用接口,每个子类都必须定义该接口提供的每个方法。(看) 使用一个抽象类,实现一个接口基本上是无用的,如果你不需要任何其他类的接口,除了这个抽象类。如果抽象类不是实现接口的唯一类,那么使

我在大型应用程序中遇到了一些设计构造:

  • 抽象类的独立使用
  • 独立使用接口
  • 实现接口的抽象类
  • 包含另一个接口的接口
  • 作为java新手,如果有人能够准确指出在特定情况下一种方法相对于另一种方法的优势,我将不胜感激。如果我们不使用这样的结构,我们会错过什么

  • 使用抽象类,您可以拥有不需要由继承抽象类的类实现的函数。(看)

  • 使用接口,每个子类都必须定义该接口提供的每个方法。(看)

  • 使用一个抽象类,实现一个接口基本上是无用的,如果你不需要任何其他类的接口,除了这个抽象类。如果抽象类不是实现接口的唯一类,那么使用它是有意义的

  • 不可能

  • 有可能。。。但是,如果您不仅需要一个其他接口,而且还需要该基本接口,那么这同样是有意义的


  • 你确定你已经达到第四点了吗?我认为第四点是不可能的。至于其他方面,这要看情况而定。一般来说,根据具体情况,在实践中都是可以的。这是不可能的,5。作品i、 e.
    public interface List extends Collection
    如果许多实现将共享公共代码,那么实现接口的抽象类可能是一个好模式,但是一些实现可能需要替代其他类(因此不能从抽象类派生)。在这种情况下,一般应避免将抽象类类型用作派生基类型以外的任何其他类型。@Marco Forberg看一下我另一篇文章中的示例,如果您仍然坚持关于第4项的陈述,请告诉我。如果您认为您的陈述是错误的,请修改/或重新措辞您的评论。您已经在其他问题中找到了答案,至少eclipse应该警告您这一点