CLOS Klasy w Common Lisp Object System posiadają możliwość modyfikacji zachowania obiektów poprzez metaklasy i użycie „protokołu metaobiektowego”, pozwalając na zachowania nie planowane przez twórców, jak np. obiekty automatycznie dodające i uzupełniające się w bazie danych SQLcl-perec czy korzystające z modelu propagacji więzówCells computed-class / przypominającego w działaniu arkusz kalkulacyjny.

Protokół metaobiektowy (MOP) nie został zawarty w standardzie ANSI, jednak książkaThe Art of the Metaobject Protocol, Gregor Kiczales (AMOP) opisująca jego działanie i przykładową implementację stała się de-facto standardem wśród implementacji Lispu.

W przeciwieństwie do języków takich jak Smalltalk czy C++, metody nie należą do przestrzeni nazw klas; należą one do generic function znajdującej się w przestrzeni nazw pakietu (lub modułu, namespace). Możliwa jest specjalizacja typu nie tylko pierwszego argumentu (self, this) ale każdego z wymaganych argumentów. Określanie pasującej metody jest względnie wydajne dzięki sprytnej memoizacji opisanej w AMOP.