abstract to słowo kluczowe wspólne dla wielu języków programowania obiektowego. Metody i klasy można oznaczyć jako abstrakcyjne, aby wskazać, że nie zawierają pełnej implementacji logiki aplikacji i muszą zostać rozszerzone. Klasy abstrakcyjne nie mogą być tworzone i służą do zapewnienia jednolitego interfejsu dla ich podklas, a także do implementacji typowych metod, które nie muszą być ponownie implementowane dla każdej podklasy.