An interface class
is like an abstract virtual class containing nothing but pure virtual methods. Virtual classes are never constructed directly; they must be extended with their virtual methods overridden ( a concrete class that can be constructed).
An abstract interface class gets implemented into a concrete class with implements
instead of extends
. The key benefit is that a concrete class can implement multiple interface classes as well as extend a single base class.