Rozhraní definuje metody, které musí existovat, ale neurčuje jejich obsah. Instance rozhraní nemůže existovat, ale s objektem implementujícím příslušné rozhraní lze pracovat jako s rozhraním. (Připomíná to škleb bez kočky z Alenky v kraji divů.)
Příklad:
public interface ZvířecíVlastnosti { public int početNohou(); } public class Zmije implements ZvířecíVlastnosti { public int početNohou() { return 0; } } public class Slepice implements ZvířecíVlastnosti { public int početNohou() { return 2; } } public class Kočka implements ZvířecíVlastnosti { public int početNohou() { return 4; } } public class Chroust implements ZvířecíVlastnosti { public int početNohou() { return 6; } } public class Sklípkan implements ZvířecíVlastnosti { public int početNohou() { return 8; } } public class Stonožka implements ZvířecíVlastnosti { public int početNohou() { return 100; } } ZvířecíVlastnosti brouk = new Chroust; System.out.println(brouk.početNohou()); // vytiskne 6