【问题标题】:Abstract classes and interfaces in Java [duplicate]Java中的抽象类和接口[重复]
【发布时间】:2011-07-13 12:32:34
【问题描述】:

可能重复:
Use of Java [Interfaces / Abstract classes]

刚接触java,在你的项目中使用抽象类和接口有什么区别?

【问题讨论】:

  • 您是否先查看过 Google 或搜索过此站点?如果是这样,您特别困惑的是什么?例如,快速浏览该网站会发现数百篇与您的帖子相同(或者实际上更好——问题中包含更多细节)的帖子,例如:stackoverflow.com/questions/2869222/…
  • 这是许多其他问题的重复 - 请参阅右侧的“相关”列。
  • 我不认为这是完全重复的,因为这是关于使用的一般问题。相关专栏中的其他问题大多是“我有 bla bla bla...你推荐什么以及为什么”
  • @Chris:你是对的。其他问题更具体,因此可以以这样的论坛形式回答。这个问题更加笼统和模糊,需要完整的教程或书籍才能正确回答。

标签: java interface abstract-class


【解决方案1】:

您一次只能从一个类继承,使用“extends”关键字,但您可以使用“implements”关键字实现任意数量的接口。 此外,抽象类可以同时具有抽象和具体(已实现)方法以及变量。

【讨论】:

    【解决方案2】:

    如果您从技术角度看它,但您可以或应该如何使用它:

    接口的主要优点是一个类可以实现任意数量的接口。相比之下,一个类只能扩展一个其他类。 (java中没有多重继承)。

    通过使用接口,您可以将单个“功能”添加到您的类中。因此,您经常会读到接口名称以“able”结尾。比如“Serializable”或“Parceable”之类的。

    一个抽象类可以是一个通用类,如果它被强制扩展的话。以“车辆”为例。您不能使用“车辆”本身,因为不存在仅是“车辆”的事物。因此,您必须实现一个扩展该类的类,该类可以是 Cars 或 Boats ....

    【讨论】:

      【解决方案3】:

      接口不包含任何实现。它只是描述实现接口的类如何与其他类交互。

      抽象类可以包含一些方法,这些方法被实现和定义抽象方法,类似于接口。

      类和接口的使用不应该考虑到整个项目,而应该考虑到特定的地方。

      【讨论】:

        【解决方案4】:

        接口是一个契约(没有实现),其中一个抽象类既是一个契约 WITH 实现。

        http://www.java-tips.org/java-se-tips/java.lang/difference-between-abstract-classes-and-inter.html

        【讨论】:

          【解决方案5】:

          在简单的英语中,接口是一个类,其中所有方法都是抽象的但不可实现(在接口中)。只有那些接口的子类(不是抽象类)必须实现抽象方法。

          抽象类有一些方法实现,但可以包含必须由具体子类实现的抽象方法。

          维基百科称(interface)

          在面向对象的语言中,术语 “接口”通常用于定义一个 不包含数据的抽象类型 但暴露定义为的行为 方法。一个拥有所有 对应的方法 据说接口实现了 界面。此外,一个类可以 实现多个接口,以及 因此可以是不同的类型 同一时间。

          维基百科:(Abstract Class)

          抽象类或抽象基类 类(ABC),是一个不能被 实例化。这样的类只有 如果语言支持,则有意义 遗产。一个抽象类是 仅设计为父类 可以派生哪些子类。 抽象类通常用于 代表抽象概念或 实体。不完整的特征 然后抽象类由 一组添加的子类 失踪的不同变化 件。

          在 java 中,您扩展一个类/抽象类,但您实现一个接口。

          【讨论】:

            猜你喜欢
            • 2011-12-05
            • 2011-07-02
            • 1970-01-01
            • 1970-01-01
            • 2011-07-12
            • 2011-02-21
            • 2011-01-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多