2011-03-11 120 views
0

可能重复:
Use of Java [Interfaces/Abstract classes]抽象类和接口在Java中

作为新到Java,是什么在你的项目和一个接口使用抽象类之间的区别是什么?

+0

您是否曾检查Google或首先搜索此网站?如果是这样,具体是什么让你感到困惑?例如,对这个网站的快速检查显示,数百个帖子与你的帖子完全相同(或者实际上更好 - 更详细的问题),比如:http://stackoverflow.com/questions/2869222/use-of-java -interfaces-abstract-classes – 2011-03-11 13:52:13

+6

这是许多其他许多问题的重复,请参阅右侧的“相关”列。 – razlebe 2011-03-11 13:52:34

+0

我不认为这是一个确切的重复,因为这是一个关于使用的一般问题。在相关专栏中的其他问题大多数是“我有bla bla bla ...你有什么建议,为什么” – Chris 2011-03-11 14:01:32

回答

1

如果你看它缺乏技术,但如何可以或者应该使用它:

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

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

抽象类可以是一个普通类,如果被迫扩展。例如像“车辆”。你不能使用“车辆”,因为没有只有“车辆”的东西存在。因此,您必须实施延长该课程的课程,该课程可能是汽车或小船....

1

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

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

类和接口的使用应该不被视为整个项目,而是被视为特定的地方。

3

您可以从一个类一次只能继承,使用“扩展”的关键字,但可以实现多个接口,只要你想,使用“工具”关键字。另外,抽象类可以同时具有抽象和具体(已实现)的方法以及变量。

0

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

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

维基百科指出(interface)

在面向对象的语言的术语 “接口”通常用于定义不包含数据 但公开定义为 方法行为的抽象 类型。一个具有对应于该接口的所有 方法的类被称为实现该接口。此外,一个类 可以实现多个接口,因此 可以在同一时间具有不同的类型。

百科:(Abstract Class)

一个抽象类,或抽象基类 (ABC),是不能被实例化 一类。如果语言支持 继承,这样的类只有 有意义。一个抽象类是 设计只作为从 可以派生的子类的父类。 抽象类经常被用来代表抽象概念 或 实体。 摘要类的不完整特征然后由 共享一组子类,其中添加 不同的缺失 件的变体。

在java中你扩展类/抽象类,但你实现的接口。