An interface is similar to a class, but does not provide any implementation.
A child class must override all methods. A middle ground is an abstract
class. Here some methods are defined, and some (abstract methods) are
undefined. A child class must fill in the definition for abstract
methods:
abstract class Window {
...
abstract public void paint (); // child class must redefine
...
}
An interface is like an abstract class in which all methods are abstract.
In C++ an abstract method is called a pure virtual method.