Metaklasa jest używana w programowaniu obiektowym (OOP) i jest zwykle uważana za klasę klas. Podobnie jak większość metainformacji, metaklasa działa za programem i nigdy nie jest widoczna dla użytkownika. Metaklasa może modyfikować informacje z klasy i może być połączona z jedną lub wieloma klasami, w zależności od struktury kodowania. Nie wszystkie struktury OOP zawierają kodowanie metaobiektów, a niektóre mogą oferować kodowanie metaobiektów tylko w zaawansowanych formatach.
W prawie wszystkich typach kodowania metakodowanie to znacznik lub wiersz kodu, który działa w programie, ale nie jest jawnie widoczny dla użytkownika. Metainformacje znajdują się nad kodem i mogą modyfikować fragmenty informacji lub dodawać do programu bez bezpośredniej ingerencji w program. W OOP metaklasa służy do pobierania klasy i modyfikowania jej zachowania.
Klasa w OOP to zbiór instancji lub obiektów umieszczonych pod jednym terminem ogólnym. Na przykład programista może stworzyć klasę o nazwie „Dom”. W ramach tego programista tworzy obiekty, które modyfikują lub odtwarzają aspekty powszechnie występujące w domu, takie jak pokoje, meble i ludzie. Chociaż klasa może modyfikować te obiekty, metaklasa działałaby na modyfikowaniu samej klasy.
Zajęcia w OOP są zazwyczaj dynamiczne i mogą ulegać wielu zmianom przed zakończeniem programu. Metaklasy to statyczne informacje, które rzadko się zmieniają, chyba że programista stwierdzi, że metainformacje nie działają poprawnie. Zapobiega to przypadkowej pracy metaklas z nietrwałymi danymi, a także zapewnia, że nie można manipulować modyfikatorami zachowania.
W zależności od potrzeb programisty metaklasa będzie połączona z pojedynczą klasą lub z wieloma klasami jednocześnie. Programiści najczęściej łączą metaklasę z jedną klasą i dodają unikalne reguły lub zachowania do kodowania metaobiektu. Jeśli istnieje kilka klas, z których wszystkie mogą podlegać tej samej modyfikacji zachowania, metainformacje zostaną zastosowane do kilku różnych klas. Jest to możliwe, ponieważ kodowanie metaobiektu jest zatytułowane i można je łatwo wywołać w razie potrzeby.
Chociaż jest to powszechne w programach średniozaawansowanych i zaawansowanych, niektóre struktury OOP nie oferują metaklas. Dzieje się tak dlatego, że nie ma takiej potrzeby lub istnieją inne obiekty lub klasy, które mają podobne funkcje, ale są nazywane inaczej. Niektóre struktury kodowania mogą również oferować tylko złożone i zaawansowane metaklasy, podczas gdy inne mają prostsze do użycia przez koderów średniozaawansowanych.