Une interface définit un contrat : un ensemble de méthodes qu'une classe doit fournir, sans état d'instance. Une classe peut en implémenter plusieurs avec implements. Elle peut proposer des méthodes default avec un corps. Les interfaces permettent de programmer vers une abstraction et de substituer les implémentations.
Exemple
interface Payable {
double montant();
}
class Facture implements Payable { public double montant() { return 10; } }