Beide definiëren abstracte types die niet rechtstreeks kunnen worden geïnstantieerd en bedoeld zijn om te worden geïmplementeerd/uitgebreid — maar ze dienen verschillende ontwerpdoeleinden. De belangrijkste onderscheidingen zijn meervoudige overerving, status en de relatie die ze modelleren.
Interface — een contract ("can-do" / mogelijkheid)
{
;
{
System.out.println();
}
;
}
{
{ }
}
