begin process at 2012 02 11 03:50:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > LES INTERFACES

LES INTERFACES


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Source .NET ( DotNet ) Classé sous :interface Niveau :Débutant Date de création :04/04/2003 Date de mise à jour :04/04/2003 15:42:27 Vu :13 379

Auteur : DarkDaemon

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

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

  • 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;
  • }
  • }
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;
   }
}
 



 Sources du même auteur

Source .NET (Dotnet) LES DÉLÉGUÉS
Source .NET (Dotnet) TRUCS ET ASTUCES POUR LES CLASSES
Source .NET (Dotnet) CLASSE ABSTRAITE

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) AFFICHAGE DE VALEUR PROVENANT D'U THREAD DANS UN FORMULAIRE par Nyuki
Source avec Zip Source avec une capture Source .NET (Dotnet) DESIGNER DE WORKFLOW WF4 WPF AVEC RIBBON OFFICE par jmenfous
Source avec Zip Source .NET (Dotnet) ENT LIB - VALIDATION BLOC DEMO par bernie666
Source avec Zip Source .NET (Dotnet) CRÉER UN ADDIN AUTOMATION POUR EXCEL par ShareVB
Source .NET (Dotnet) XML VERS TREENODE / TREENODE VERS XML par ip2x

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) [WPF] NOTIFIER L'INTERFACE UTILISATEUR DE LA MODIFICATION D'... par Thomas LEBRUN
Source avec Zip Source .NET (Dotnet) [XNA 1.0 REFRESH] GESTION PAR GAMESTATE par ricklekebekoi
Source avec Zip Source avec une capture Source .NET (Dotnet) REMPLACEMENT AUTOMATISÉ DE CHAÎNES DE CARACTÈRES par badrbadr

Commentaires et avis

Commentaire de nicolson le 04/04/2003 18:55:21

Ouais c'est cool, j'ai bien compris comment ça marchait (simple et clair) : 9/10
Mais par contre j'ai pas compris à quoi ça servait vraiment... Pourquoi ne pas créer directement un objet Class1 test et faire un test.Fonction... ?

Commentaire de Kaid le 04/04/2003 20:18:26

Comme l'a expliqué DarkDaemon, les interfaces c'est très proche de l'héritage entre les classes. En C# ou en JAVA, où l'héritage multiple n'existe pas (contrairement au C++), si tu veux que ta classe fille dérive de deux ou n classes mères, il faut que tes classes mères soient des interfaces.

Mais en fait les interfaces servent plutôt à dire: "j'ai un concept applicable à une classe, je définis ce concept dans une interface. Si une classe implémente (terme JAVA) cette interface, alors la classe implémente le concept". Un exemple: une interface pour la sérialisation, si tu implémentes cette interface alors ta classe est sérialisable. Et comme expliqué précédemment, il est possible de cumuler les interfaces donc les concepts attachés.


Commentaire de gg00xiv le 04/04/2003 23:02:48

toutes les classes dérivent de Object, pas besoin de le préciser ...
bonne explication : 9/10

Commentaire de vieuxLion le 08/04/2003 14:54:09

Ce que tu explique est un cas très particulier de l'utilisation des interfaces. C'est une construction inventée par ce langage C# qui s'appelle IMPLEMENTATION EXPLICITE DES INTERFACES.
La technique normale reste de définir une interface et de l'implémenter simplement (sans préfixer le nom de la fonction par le nom de l'interface)
A quoi sert cette nouvelle technique ? A traiter le cas où une même classe désire implémenter deux interfaces dont les noms de fonction entrent en collision (identiques) TOUT EN AYANT UNE SEMANTIQUE DISTINCTE (sinon une seule implémentation suffit)
C'est bien le cas que tu présente mais il aurait mieux valu l'annoncer
Encore une remarque : Pourquoi est il nécessaire d'avoir une référence du type de l'interface (et non pas du type de la classe) pour appeler les méthodes => car le compilateur ne saurait pas quelle implémentation prendre parmi les deux
Sinon, c'est bien fait ;)

Commentaire de scoubidou944 le 03/09/2006 16:43:04

Et maintenant si la Classe1 est une classe abstraite, on fait comment dans le cas suivant :

internal interface IDuplicable
{
Classe1 Duplicate ();
}

public abstract class Classe1 : IDuplicable
{
// ERROR, Le compilo demande l'implementation de Duplicate
// sauf que l'on ne peut pas faire un new Classe1()
}

public class Classe2 : Classe1
{
public Classe1 Duplicate ()
{
return new Classe2();
}
}

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Implementer une interface COM existante dans un object .NET [ par FrancoisC ] Bonjour,J'essaye d'implémenter une interface COM existantedans un object .NET (UserControl).Mais c'est interface n'est pas accessible par l'objet COM Remplissage de case rien de plus :/ [ par dJe781 ] "Alors là c'est si vous êtes désespéré et au bord du suicide :-)"Ca résume plutôt bien ^^Voilà, j'en suis au stade de vous proposer le défit du siècle interface media player [ par azyous ] qui a une ideé comment faire une interface qui ressemble a media player avec visual c# Interface IDbDataAdapter [ par jacma ] BonjourQuel est l'intérêt d'implémenter l'interface IDbDataAdapter plutôt que de se servir directement de SqlDataAdapter?Merci interface MDI et réduction [ par coq ] bon voilà : quand on reduit une fenetre enfant dans un MDI, il reste une "petite boite" avec la barre de titre et les 3 box de controle (fermer, agran Chat avec interface graphique !!!!!! [ par saku_ ] Salut tout le monde !!!! J'ai réalisé un Chat en C# en mode Console, mon souci est que je n'arrive pas à faire l'interface. Serait il de me donner u Affichage d'une interface au click d'un control TextBox en ASP.NET [ par Alex009 ] BonjourJ'ai un formulaire( xyz.aspx) avec plusieurs controls de textbox qui prendront le detail de chaque article, j'aimerai afficher une interface(ou Interface ? [ par ToshiBaba ] Bonjour,J'ai un souci de conception dans mon projet C#, peut-être que vous pourrez m'aider Ce que je veux faire :une MDI qui instancie quand le besoin créer une interface de dessin [ par godefrw ] Bonjour, je souhaite créer dans mon application, une interface de dessin permettant à l'utilisateur de réaliser des dessin de base: rectangle et rond, Interface de connexion [ par bibicool ] Bonjour à tous,J'utilise CSharp depuis peu, Je développe une application permettant de se connecter à une base de donnée sécurisée par un fichier syst


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,398 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales