Java中的抽象类和接口

时间:2011-03-11 13:49:06

标签: java interface abstract-class

  

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

成为java的新手,在项目中使用抽象类和界面之间有什么区别?

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

如果你从技术上看不太合适,但是你可以或应该如何使用它:

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

使用界面,您可以为您的班级添加单个“功能”。因此,您经常会读到接口名称以“able”结尾。比如“Serializable”或“Parceable”或类似的东西。

Abstract类可以是一个通用类,如果强制扩展它。比如“车辆”。你不能自己使用“车辆”,因为没有任何东西只是一个“车辆”。所以你必须实现一个扩展该类的类,可以是Cars或Boats ....

答案 4 :(得分:0)

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

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

维基百科声明(interface)

  

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

维基百科:(Abstract Class)

  

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

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