Abstract classes and interfaces in Java
Possible Duplicate:
Use of Java [Interfaces / Abstract classes]
对于Java是新的,在项目中使用抽象类和接口有什么不同?
使用"extends"关键字,一次只能从一个类继承,但使用"implements"关键字,可以实现任意多个接口。此外,抽象类可以同时具有抽象和具体(实现)方法,以及变量。
如果你从技术上看它,但是你可以或者应该如何使用它:
接口的主要优点是类可以实现任意多的接口。与此相反,一个类只能扩展另一个类。(Java中没有多重继承)。
通过使用接口,您可以向类中添加单个"功能"。因此,您经常会看到接口名称以"able"结尾。像"可序列化"或"可分割"之类的。
抽象类可以是一般类,如果强制扩展的话。比如说"车辆"。你不能自己使用"车辆",因为没有东西存在,只有"车辆"。所以你必须实现一个类来扩展这个类,这个类可以是汽车或者船……
接口是一个契约(没有实现),其中抽象类都是一个带有实现的契约。
http://www.java-tips.org/java-se-tips/java.lang/difference-between-abstract-classes-and-inter.html
接口不包含任何实现。它只是描述实现接口的类如何与其他类交互。
抽象类可以包含一些实现和定义抽象方法的方法,这些方法与接口类似。
类和接口的使用不应考虑到整个项目,而应考虑到特定的地方。
在SimpleEngilsh中,接口是一个类,其中所有方法都是抽象的,但不可实现(在接口中)。只有那些接口的子类(不是抽象类)必须实现抽象方法。
抽象类有一些方法实现,但可以包含必须由具体子类实现的抽象方法。
维基百科状态(界面):
In object-oriented languages the term
"interface" is often used to define an
abstract type that contains no data
but exposes behaviors defined as
methods. A class having all the
methods corresponding to that
interface is said to implement that
interface. Furthermore, a class can
implement multiple interfaces, and
hence can be of different types at the
same time.
维基百科:(抽象类)
An abstract class, or abstract base
class (ABC), is a class that cannot be
instantiated. Such a class is only
meaningful if the language supports
inheritance. An abstract class is
designed only as a parent class from
which child classes may be derived.
Abstract classes are often used to
represent abstract concepts or
entities. The incomplete features of
the abstract class are then shared by
a group of subclasses which add
different variations of the missing
pieces.
在爪哇中,扩展类/抽象类,但实现了接口。