abstract est un mot-clé partagé par une multitude de langages de programmation orientés objet. Les méthodes et les classes peuvent être marquées comme abstraites pour indiquer qu'elles ne contiennent pas l'implémentation complète de la logique d'application et doivent être étendues. Les classes abstraites ne peuvent pas être instanciées et ont pour but de fournir une interface uniforme pour leurs sous-classes, ainsi que l'implémentation de méthodes communes qui n'ont pas besoin d'être réimplémentées pour chaque sous-classe.