Interfejs – definicjaabstrakcyjnego typu posiadającego jedynie operacje, a nie dane. Kiedy w konkretnejklasie zdefiniowane są wszystkiemetody interfejsu mówimy, że klasa implementuje dany interfejs. W programie mogą być tworzone zmienne typureferencja do interfejsu, nie można natomiast tworzyćobiektów tego typu. Referencja może wskazywać na obiekt dowolnej klasy implementującej dany interfejs.Interfejs określa udostępniane operacje, nie zawiera natomiast ich implementacji i danych. Z tego powodu klasy mogą implementować wiele interfejsów, bez problemów wynikających z wielokrotnegodziedziczenia. Wszystkie metody w interfejsie z reguły muszą być publiczne.
Interfejs pozwala nahermetyzację obiektów, utworzonych w oparciu o klasy zawierające definicję (implementację) wspólnego interfejsu. Tak rozumiany interfejs, w ramachprogramowania obiektowego, określany jest też mianeminterfejs klasy.
interfaceInterfejs{publicvoidproc();}classKlasaimplementsInterfejs{@Overridepublicvoidproc(){// ...}}
między ww. typami danych są następujące różnice: