W programowaniu obiektowym podprogramy zwane „metodami” są używane do wykonywania funkcji w programie. Metody te składają się z instrukcji programowania, które wykonują akcję, konfigurują parametry wejściowe w celu dostosowania akcji i mogą zwracać lub wyprowadzać wartość pewnego rodzaju obiektu lub klasy. Metody są czynnościami wykonywanymi w programie z określonej klasy lub w obiekcie i służą do uzyskiwania dostępu do danych przechowywanych w obiekcie i manipulowania nimi. Istnieje wiele różnych metod i każda z nich ma określone zastosowanie. Określony typ, który jest wykonywany z abstrakcyjnej superklasy i dziedziczony przez podklasy, jest znany jako metoda abstrakcyjna.
Ogólnie rzecz biorąc, metoda abstrakcyjna wykonuje niewielką lub żadną implementację w ramach swojej abstrakcyjnej superklasy. Kody zawarte w tego rodzaju metodzie są uważane za kody fikcyjne i nie są implementowane same. Nie oznacza to, że konkretna metoda abstrakcyjna w określonej klasie abstrakcyjnej nie jest używana. Metoda abstrakcyjna działa raczej jako model lub symbol zastępczy dla podklas, aby zakończyć implementację metody.
Superklasy mogą zawierać wiele podklas, a wszystkie podklasy superklasy mają pewne podobne stany i zachowania. Klasy abstrakcyjne są zatem rodzajem klasy wirtualnej, która wykazuje wirtualne dziedziczenie. Oznacza to, że każda podklasa wywodząca się z superklasy dziedziczy ograniczenia superklasy, z której pochodzi. Dlatego metody w podklasach wywodzą się z abstrakcyjnych metod superklas. Podczas programowania i korzystania z metod abstrakcyjnych programista musi zadeklarować klasę abstrakcyjną, a nie wirtualną.
Na przykład superklasa „Obiekty graficzne” zawiera podklasy „Okrąg”, „Kwadrat” itp. W związku z tym wszystkie koła i kwadraty mają te same stany — orientację, położenie, kolor wypełnienia, kolor linii — i zachowania — moveTo , zmieniaj rozmiar, obracaj, rysuj — jako „Obiekty graficzne”. Wszystkie podklasy w tej superklasie mają te same cechy, ale są implementowane na różne sposoby. Abstrakcyjna metoda superklasy zapewnia podstawę bez implementacji, a podklasy wykonują rzeczywistą implementację przy użyciu tych samych metod. Mimo że każda podklasa używa tej samej metody, co klasa abstrakcyjna, jednoznacznie definiują sposób, w jaki metoda zostanie wykonana.
Użycie metody abstrakcyjnej pozwala na uogólnianie na najwyższym poziomie (superklasie) oraz specyfikację na niższych poziomach (podklasach). Ta hierarchia minimalizuje ilość programowania metod dla każdej określonej podklasy. Korzystanie z tych metod pozwala również na idempotentność podklas, co oznacza, że jeśli metoda jest implementowana wielokrotnie, wynik jest za każdym razem taki sam.