Interfata reprezinta o multime de definitii privind proprietati, metode si evenimente. Spre deosebire de clasele de obiecte […], interfetele nu contin partea de implementare. Interfetele sunt implementate […] de catre clasele de obiecte, dar se definesc ca entitati separate de acestea.
O clasa de obiecte care implementeaza o interfata trebuie sa implementeze toate elementele definite in acea interfata.
Definirea unei interfete VB.NET se realizeaza cu ajutorul cuvantului rezervat Interface, iar implementarea interfetei cu ajutorul cuvantului rezervat Implements.
La definirea unei interfete se pot prelua specificatii definite in alte interfete. Mostenirea elementelor definite in alte componente se implementeaza in limbajul VB.NET cu specificatia Inherits.
Intr-un namespace […], interfetele au asociat implicit modificatorul de acces Friend […], iar cele definite in clase de obiecte, module, interfete si structuri au asociat implicit modificatorul de acces Public.
Interfata reprezinta un instrument puternic de programare, intrucat separa definitia obiectelor de partea de implementare. Situatii in care se recomanda definirea de interfete:
- clase de obiecte cu nivel de ortogonalitate ridicat: implementare pe scara redusa a mostenirii la definirea claselor de obiecte;
- flexibilitate ridicata: o clasa de obiecte poate implementa mai multe interfete;
- nu se doreste mostenirea implementarii dintr-o clasa de baza;
- nu se poate utiliza mostenirea in cazul claselor de obiecte: structurile […] nu pot mosteni clase de obiecte, dat pot implementa interfete.
Exemplu de implementare in cod sursa VB.NET a definirii unei interfete:
Interface IOperatii Event Calcul(ByVal x As Integer, ByVal y As Integer) Function OpDiferenta(ByVal a As Integer, ByVal b As Integer) As Integer Function OpProdus(ByVal a As Integer, ByVal b As Integer) As Long End Interface
In exemplul anterior, definirea interfetei IOperatii s-a realizat cu ajutorul cuvantului rezervat Interface si s-a incheiat cu specificatia End Interface.
Interfata IOperatii defineste un eveniment denumit Calcul si doua proceduri de tip Function denumite OpDiferenta, respectiv OpProdus.
Aplicatia creata cu Visual Studio este de tip Console Application.