W
programowaniu obiektowym interfejs jest definicją
abstrakcyjnego typu posiadającego jedynie operacje, a nie dane. Kiedy w konkretnej
klasie zdefiniowane są wszystkie
metody interfejsu mówimy, że klasa implementuje dany interfejs. W programie mogą być tworzone zmienne typu
referencja 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 wielokrotnego
dziedziczenia. Wszystkie metody w interfejsie z reguły muszą być publiczne.