cieczy wyrażoną w litrach, to wiemy, jak jej użyć (wiemy np., ile to coś waży i jaką ma objętość). Metody są ściśle przypisane do konkretnego typu obiektu i możemy ich użyć tylko i wyłącznie do obiektów danego typu. Jeśli np. obiekt „samochód” ma metodę „Uruchom silnik”, która uruchamia silnik samochodu, to nie możemy jej użyć w stosunku do obiektu innego typu, np. do obiektu typu „zwierzę”.
Każdy obiekt w systemie służy jako model abstrakcyjnego „wykonawcy”, który może wykonywać pracę, opisywać i zmieniać swój stan oraz komunikować się z innymi obiektami w systemie bez pokazywania, wjaki sposób zaimplementowano dane cechy. Procesy, funkcje lub metody mogą być również abstrahowane, a kiedy tak się dzieje, konieczne są rozmaite techniki rozszerzania abstrakcji.
Hermetyzacja to ukrywanie (implementacja, enkapsulacja). Hermetyzacja zapewnia, że obiekt nie może zmieniać stanu wewnętrznego innych obiektów w nieoczekiwany sposób. Do zmiany jego stanu uprawnione są tylko własne metody obiektu. Każdy typ obiektu prezentuje innym obiektom swój interfejs, który określa dopuszczalne metody współpracy. Interfejs jest definicją abstrakcyjnego typu mającego jedynie operacje, a nie dane. Interfejs określa udostępniane operacje, nie zawiera natomiast ich implementacji i danych. Z tego powodu klasy mogą implementować wiele interfejsów, bez problemów wynikających z wielokrotnego dziedziczenia. (Wszystkie metody w interfejsie z reguły muszą być publiczne).
Polimorfizm w dosłownym znaczeniu oznacza wielopostaciowość. Oznacza to, że dany obiekt może się zachowywać inaczej niżjego potomek lub przodek. Inaczej mówiąc, w wyniku użycia pewnej metody w stosunku do danego obiektu możemy otrzymać coś innego niż przy użyciu tej samej metody w stosunku do jego potomka (jeśli ten odziedziczył taką metodę). Np. jeśli obiekt „rodzic” ma metodę „Czytaj książkę”, w jego wyniku obiekt czyta książkę w języku polskim. Jednak użycie tej samej metody
6