• Declararea claselor virtuale; • Apelarea constructorilor în clasele virtuale; • Elaborarea fragmentelor de program bazate pe clase şi funcții virtuale. Interfețe:
• O interfață este un tip referință care descrie un set de metode, dar nu
le implementează. • Clasele și structurile pot implementa interfețe. • Când o clasă implementează o interfață, trebuie să implementeze toate metodele acelei interfețe. În acest fel clasa „semnează un contract”, pe care se obligă să-l respecte. Sintaxa minimală:
[modificator] interface NumeInterfata
{ //Corpul interfeței }
Modificatorii pot fi: public, private, protected, internal, protected internal.
Cuvîntul cheie interface precede numele interfeței. Prin convenție numele
interfeței trebuie să înceapă cu litera I. Exemplu: IComparable, IControl, etc. Implementarea interfețelor de către clase:
O clasă sau o structură poate implementa una sau mai multe interfețe.
interface I1{ /* … */}
interface I2{ /* … */} Class C : I1, I2 { /*…*/ } Exemplu: Interfața Ifigure, de la care vom deriva două clase Triangle și Circle. Clasa Triangle Clasa Circle Clasa Program Caracteristicile interfețelor:
• O interfață nu se poate instanția.
• Interfețele nu conțin câmpuri, ci doar metode, proprietăți, evenimente. • Interfețele nu conțin implementări ale metodelor. • Clasele și structurile pot moșteni (Implementa) una sau mai multe interfețe. • O interfață poate la rândul său să moștenească o altă interfață.