Les interfaces servent à obliger les classes qui les implémentent a redéfinir leurs méthodes.
Le nombre d'interfaces que peut implémenter une classe est illimité, contrairement aux classes abstraites.
Source / Exemple :
using System;
class ClassePrincipale : Object
{
public static void Main() //Point d'entré du programme.
{
Classe1 test=new Classe1();
/*
- On utilise un handle d'interface
- seulement pour accéder a ses membres.
- /
ITest itest;
//Indispensable pour accéder a la méthode FonctionC()
//de ITest.
ITest2 itest2;
//Indispensable pour accéder a la méthode FonctionC()
//de ITest2.
itest=test;
Console.Out.WriteLine( itest.FonctionC(true,true) );
itest2=test;
Console.Out.WriteLine( itest2.FonctionC(true,true) );
}
}
/*
- Pour repérer facilement une interface on ajoute un I
- comme préfixe.
- /
interface ITest
{
void FonctionA();
int FonctionB(int a);
bool FonctionC(bool a,bool b);
}
interface ITest2
{
bool FonctionC(bool a,bool b);
}
//La classe mère suivit des deux interfaces (toujours dans cet ordre).
class Classe1 : Object,ITest,ITest2
{
public void FonctionA()
{
}
public int FonctionB(int a)
{
return 1;
}
bool ITest.FonctionC(bool a,bool b)
{
Console.Out.WriteLine("FonctionC() de l'interface ITest : ");
return true;
}
bool ITest2.FonctionC(bool a,bool b)
{
Console.Out.WriteLine("FonctionC() de l'interface ITest2 : ");
return false;
}
}