Table of Contents

Interface

Meaning 1: Interface as a Concept

Alternative Terms

Definition

An interface defines the interaction between certain modules.

Description

Interface is a very general concept which refers to the interaction points of arbitrary modules:

The interface defines how a module shall be used. There may be ways circumventing the interface and accessing internal parts of a module directly. This should be avoided (IH/E) but is sometimes done.

A module can be described as having a provided interface and a required interface.

Examples

Alternative Definitions

See Also

Further Reading


Meaning 2: Interface as a Language Construct

Alternative Terms

Definition

An interface is a language construct of certain object-oriented programming languages resembling an abstract class without any implementation.

Description

An interface is similar to a class but does not contain any attributes or implementations—just method signatures. Typically object-oriented programming languages use interfaces in order to avoid the problems of multiple inheritance, especially the diamond problem. In such languages a class can inherit from only one class but multiple interfaces. In that way there is only one implementation inherited.

There are interfaces in Java, C#, Object Pascal/Delphi and possibly also in other languages.

Note that in this wiki whenever the language construct is meant (and not the concept) interface shall be written using a monospace font: interface vs. interface.

Examples

java.util.Collection<E>:

public interface Collection<E> extends Iterable<E> 
{
    boolean add(E e);
    boolean addAll(Collection<? extends E> c)
    void clear()
    boolean contains(Object o)
    ...
}

Alternative Definitions

See Also

Further Reading


Other Meanings


Discussion

Discuss this wiki article and the term on the corresponding talk page.