Rozhraní deklaruje smlouvu — sadu metod, které musí typ poskytnout — s žádnou (nebo minimální) implementací. Abstraktní třída je částečně implementovaná třída, která může obsahovat sdílený stav a konkrétní metody, ale nemůže být vytvořena. Klíčový rozdíl: třída může implementovat mnoho rozhraní, ale dědit pouze z jedné třídy.
