Ada 2005 : Interfacek
Adában interfészek alatt tulajbonképpen olyan speciális absztrakt osztályokat értünk, amelyek nem tartalmaznak adatmezőket, valamint egyetlen megengedett nem absztrakt műveletük a null eljárás.
Az Ada nyelv interface-ei azért fontosak, mert segítségükkel támogatja a nyelv a többszörös öröklődés egy biztonságos fajtáját, így részben elkerülhetjük a kényszerű alá - fölé rendeltségi viszonyt a típusaink között.
Ada 2005-től lehetőségünk nyílik arra, hogy olyan osztályokat hozzunk létre, amelyek bár csak egyetlen szülőtől örökölhetnek adatot, és konkrét implementációt, ezzel egy időben számos további őstől örökölhetnek - amelyek kötelezően inerface-k - absztrakt műveleteket valamint null eljárásokat is.
Maga az interface tulajdonképpen nem más, mint egy „specifikáció” ami a későbbi implementáló és felhasználó kódnak szól.
Ha a fentieket meggondoljuk, készíthetünk olyan interface-eket, amelyeket úgy specifikálunk, hogy tegyék lehetővé egy majdani létező konkrét adat (változó) értékének lekérdezését, esetleg beállítását. Ezáltal közelebb kerülhetünk az objektumorientált megközelítéseknél gyakran használt setter / getter létezése miértjének megértéséhez is.
Az Ada interface típusát a fent említetteken kívül a következő tulajdonságai miatt tartjuk biztonságosnak:
- Ha két ősnek is létezik ugyanolyan szignatúrájú eljárása, az absztraktot a null eljárás felülírja.
- Az azonos szignatúrájú „interface metódusok összevonódnak”.
- Minden más a „megszokott” módon öröklődik.