Moștenirea interfeței este un mecanism în anumite limbaje de computer în care anumite funcții sunt moștenite de o clasă, iar apoi acea clasă trebuie să furnizeze implementări pentru acele funcții pentru a fi completă. Interfețele există doar în anumite limbaje de programare orientate pe obiecte. Ele pot fi folosite pentru a emula moștenirea multiplă, fără a permite de fapt unei clase să se înmulțească moștenirea, deoarece, în general, nu există limite pentru numărul de interfețe de care o clasă poate moșteni. Pe lângă metodele neimplementate, interfețele pot include și constante publice.
În moștenirea interfeței, obiectul care moștenește stub-uri de metodă și constante este considerat a fi un tip de obiect de interfață. Deci, dacă o clasă X moștenită de la o interfață Y, orice instanță a clasei X ar fi, de asemenea, o instanță a clasei Y. Acest lucru devine mai complicat atunci când moștenirea unei interfețe a unei clase implică mai mult de o interfață separată. Pentru fiecare interfață suplimentară care este moștenită, clasa rezultată poate fi utilizată în mod legitim ca o instanță a fiecăreia. Dacă o clasă moștenește de la zece interfețe diferite, obiectele acelei clase ar putea fi utilizate ca o instanță a unsprezece obiecte diferite, inclusiv el însuși.
O astfel de moștenire complexă nu este adesea necesară. Moștenirea interfeței este utilizată pentru a se asigura că o clasă are un set specific de comportamente necesare, iar aceste comportamente îi permit să îndeplinească o varietate de funcții pe care altfel nu le-ar putea face. Un exemplu comun în acest sens este interfața ActionListener în Java, care necesită o clasă pentru a implementa o singură metodă specifică. Implementarea cu succes a acestei metode permite unui utilizator să controleze butoanele, elementele de meniu sau orice alt obiect fereastră din clasă, dacă dorește. Moștenirea interfeței este o modalitate relativ simplă de a adăuga funcționalități complexe unei clase fără a vă face griji cu privire la cele mai complicate probleme de moștenire.
Unul dintre cele mai mari avantaje ale utilizării moștenirii interfeței este că permite ca obiectele specifice să fie folosite într-un sens generic. Deoarece o clasă care implementează o interfață este o instanță a acelei interfețe, poate fi folosită oriunde este necesară o instanță a acelei interfețe. De exemplu, dacă clasa A implementează clasa C, iar clasa B implementează și clasa C, dacă o metodă ia ca parametru o instanță a clasei C, fie o instanță a clasei A, fie o instanță a clasei B ar fi un parametru acceptabil de utilizat. . Interfețele nu pot fi instanțiate pe cont propriu deoarece nu sunt complete, astfel încât nu ar exista niciodată un obiect care să fie pur o instanță a clasei C ca parametru.