Az objektum-orientált programozás támogatása a nyelvben a 4.0-ás verziótól van jelen, és az SAP-Business-Objektumokon
alapul. Az ABAP az egységbezárás, öröklődés és polimorfizmus segítségével
támogatja az objektumorientált programfejlesztést. Osztály- és interfészdefiníciók vagy globálisan
egy osztálykönyvtárban (un. Object-Repository) hozhatók létre, vagy lokálisan egy program
(pl. Reports, Modul-Pools, Függvénycsoport, stb.) tartalmazhatja.
Egy objektum komponense láthatóság szerint lehet nyilvános, védett vagy privát. A privát komponensek csak az osztálydefiníción belül érhetőek el. A védett tagok a közvetlen és közvetett leszármazottakban is elérhetőek. Minden más komponens nyilvános tagnak tekintendő. Ezek más programrészekből, osztálydefiníciókból láthatóak. Nyilvános tagok estén lehetőség van a külső változtatás letiltására (READ-ONLY attribútum). Létrehozható osztály szintű attribútum, mely lehet privát, védett, nyilvános valamint READ-ONLY. Ez a leszármazottakban is ugyan az. A változó osztályattribútumok mellett definiálhatóak konstansok is, melyeket osztálykonstansak is neveznek.
Objektumok felépítését az osztályok definíciója határozza meg. Osztályok között a hagyományos értelemben vett öröklődés lehetséges. Ekkor a gyermek osztály az őstől minden attribútumot és metódust örököl. Az alosztályban további komponensek vehetőek fel és a metódusok átírhatóak. Egyes osztályok között néha szükséges a privát tagok megosztása. Ezt a Friend kapcsolatot explicit módon meg kell adni mindkét osztály definíciójában. Ha az "A" osztály a "B" osztály felé ilyen barátságban van az nem vonja maga után az ellentétes irányt, azt ugyancsak definiálni kell.
A JAVA-ban megszokott lehetőségeket tartalmazza. Ha egy osztály implementál egy, vagy több interfészt, akkor azok minden metódustörzsét meg kell adni. Interfészek között is lehetséges öröklődés.
Az osztályok vagy interfészek deklarációs részében megadható alias név egy
Például az alábbi módon lehet meghívni egy metódust, amelyet egy interfészben definiáltak, de egy osztályban implementáltak.
Ennek a metódushívásnak az egyszerűsítésére bevezethetünk alias-t az interfész-beli metódusra.
Az ABAP/4 legújabb elemi típusa a referencia. Egy objektum létrehozásakor egy referenciát kapunk vissza, mellyel az objektumhoz férhetünk hozzá. Ezeket a referenciákat referenciaváltozókban tárolhatjuk. Az üres referencia értéke egy referenciaváltozóban az INITIAL. Referenciaváltozó másolásakor nem a mutatott objektum másolódik át, hanem a referencia másolódik. Tehát két referenciaváltozó mutat ugyanarra az objektumra (Object Sharing). A referenciaváltozók tipizáltak. Egy objektum-referenciaváltozó deklarálásakor meg kell adni egy osztálynevet. Ez által az objektum-referenciaváltozó által mutatott objektum típusa meg kell egyezzen az osztály, vagy annak leszármazottjának a típusával. Egy interfész-referenciaváltozó deklarálásakor is meg kell adni egy interfésznevet. Ez által az interfész-referenciaváltozó által mutatott objektum egy ilyen interfészt implementál. Lehetőség van un. univerzális referenciaváltozó deklarálására is. Ekkor az OBJECT előre definiált osztálynevet kell megadni, mely mint implicit ős tekinthető minden osztályra nézve. Objektumok attribútumai is lehetnek referenciaváltozók és utalhatnak egy másik objektumra. Típusvizsgálat a referenciaváltozók esetén statikus, vagyis fordítási időben történik. Egy referenciaváltozó: REF TO C csakis egy C osztálynak megfelelő egyedre vagy leszármazottjára utalhat. A két referenciaváltozó akkor kompatibilis, ha O2 típusa megegyezik O1, vagy egy abból származtatott osztály típusával. Egy O1=O2 (O1, O2 referenciaváltozók) értékadás csak akkor korrekt, ha fordítási időben eldönthető, hogy a O1 és O2 kompatibilis. Akkor lehet egy interfész referenciaváltozóval egy objektum referenciaváltozó által mutatott objektumra mutatni, ha az objektum (osztály) implementálta az interfészt. Esetenként szükséges a statikus típusvizsgálat kitolása a futásidőre. Az ABAP/4-nek van erre az un. downcast-ra is egy speciális utasítása. Ekkor futásidőben lekérdezhető, hogy az objektum melyik interfészt implementálja. Ezt az esetet explicit módon tudatni kell a fordítóval.
Az objektumokat dinamikusan hozzuk létre melyekre referenciákkal hivatkozhatunk. Az objektum életrehívásakor biztosítanunk kell a specifikációnak megfelelő konzisztens állapotot. Ezt az ABAP/4 a konstruktor metódus segítségével biztosítja. Egy objektum létrehozásakor ez automatikusan meghívódik és a szükséges inicializálásokat elvégzi. Minden osztályhoz pontosan egy konstruktor tartozik és a konstruktor neve megegyezik az osztály nevével. Konstruktorokat a leszármazottakban nem lehet átírni. Az ős konstruktora explicit módon hívható. Objektumok törléséről maga a rendszer gondoskodik (Garbage Collection), nem létezik a destruktor fogalma. Egy objektum egészen addig elérhető, míg létezik referencia, mely rá mutat. Ha egy objektum nem elérhető, a rendszer egy későbbi időpontban törli azt.