3.1.4. Definice rozhraní

Samotné rozhraní abstraktního typu můžeme v jazyce Java popsat také jako rozhraní obsahující pouze veřejné abstraktní metody. Jednotlivé metody pak budou implementovány ve třídě, která toto rozhraní zdědí. Toto řešení má zejména tu výhodu, že popis struktury rozhraní může být uložen odděleně od implementace a použit současně i pro alternativní implementace, čímž je zachována konzistence.

Pro uvedený abstraktní datový typ Time můžeme vytvořit následující rozhraní:

public interface Time { 
  int getMinutes(); 
  int getHours(); 
  void increment(int delta); 
};

Implementace se pak od předchozí liší pouze jiným jménem třídy a uvedením jména rozhraní za klíčovým slovem implements v záhlaví definice třídy:

public class TimeImpl implements Time {  
  ... 
}

Takto definovaná třída s rozhraním se může použít následujícím způsobem:

Time t = new TimeImpl(12, 30); 
System.out.println(t.getHours() + ":" + t.getMinutes());

Použijeme-li pro reprezentaci času jinou implementaci vyhovující rozhraní Time, změní se pouze volání konstruktoru, zatímco zbytek programu zůstane shodný.