Rekurencja - odwoływanie się np. do funkcji definicji do samej siebie
Metoda - metoda to taka funkcja, która ma wyraźnie określonego wykonawcę
Klasa - opisuje jak każdy obiekt tej klasy będzie wyglądał, jakie świadczył usługi
Konstruktor - kawałek kodu wywołany automatycznie w momencie tworzenia obiektu, jego rolą jest zainicjowanie obiektu, może on mieć parametry, który podawany jest w momencie tworzenia obiektu
Destruktor - fragment kodu wywołujący się automatycznie przy usuwaniu obiektu
Interfejs klasy - zbiór funkcjonalności, który oferuje dana klasa, z których może korzystać programista wykorzystujący ją do napisania własnego programu; zbiór nagłówków, metod i konstruktorów oferowanych przez daną klasę, które należy wywołać aby skorzystać z tych funkcjonalności
Implementacja klasy - wszystko to, co programista zawrze w kodzie klasy po to aby zadziałał interfejs
Hermetyzacja - technika ograniczenia dostępu do niektórych składowych klas
Kompozycja - łączy dwie klasy swoistą relacją „jest elementem” lub „zawiera się”/ „składa się z” lub „jest zbudowany z” lub „zawiera”( w Uml romb)
Dziedziczenie - technika, która pozwala przejąć z klas już istniejących jej składowe, a następnie dodać nowe lub zmienić tylko te wybrane, które nie są odpowiednie w nowej klasie cały czas mogąc korzystać z pozostałych niezmienionych; relacja: „jest szczególnym przypadkiem” lub „jest rodzajem”/ „jest uogólnieniem” lub „obejmuje”
Klasa abstrakcyjna - która nie może mieć swoich reprezentantów pod postacią obiektów. Zależnie od użytego języka programowania klasy abstrakcyjne tworzy się na różne sposoby. jest pewnym uogólnieniem innych klas (na przykład dla występujących w rzeczywistości obiektów), lecz sama jako taka nie istnieje
Polimorfizm - mechanizmy pozwalające programiście używać wartości, zmiennych i podprogramów na kilka różnych sposobów[1
Informacja statyczna - to taka informacja, która jest dostępna dla kompilatora poprzez analizę kodu
Informacja dynamiczna - informacja dostępna dopiero w trakcie wykonania się programu
Mechanizm RTTI - mechanizm dynamicznego pozyskiwania informacji o typach obiektów w trakcie wykonania się programu
Metody wirtualne - to metoda, której wywołanie jest polimorficzne.
Przeciążanie - stworzenie kilku składowych o takich samych nazwach ale różnych listach parametrów
Nadpisywanie - stworzenie kilku metod o takiej samej nazwie i takiej samej ilości list parametrów
Klasa finalna - klasa, z której nie można dziedziczyć
Metoda finalna- metoda, której nie można nadpisać w klasie dziedziczącej
Metody abstrakcyjne - Metody abstrakcyjne są funkcjami nie posiadającymi implementacji i z założenia są wirtualne
Kowariancja - umożliwia metodzie wskazywanej przez delegata zwrócić obiekt klasy dziedziczącej z klasy deklarowanej jako delegata
Kontrawariancja- umożliwia metodzie wskazywanej przez delegata pobierać obiekt klasy bazowej dla klasy deklarowanej jako parametr delegata
Programowanie zdarzeniowe - paradygmat programowania, w którym wykonanie programu sterowane jest przez napływające zdarzenia