IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

différences entre Interface , Generic et Abstract class


Sujet :

C#

Vue hybride

rdh123 différences entre Interface ,... 25/11/2007, 15h46
SirJulio Salut, pour la difference... 25/11/2007, 16h58
rdh123 si je veux construire une... 25/11/2007, 17h17
Kaidan Essaye le code suivant : ... 26/11/2007, 08h41
rdh123 Je vais tester ce code, je... 26/11/2007, 16h04
Chubyone Je n'appellerais pas cela un... 26/11/2007, 16h27
Monstros Velu Moi, ça me manque, l'héritage... 26/11/2007, 17h06
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Par défaut différences entre Interface , Generic et Abstract class
    Bonjour

    je voudrais pas que ma question paraisse théorique mais souvent la pratique permet de sentir plus les choses, alors si vous voulez nous faire partager votre appréciation concrètement l'utilisation pratique des Interfaces, class abstraites et Générique.

    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    pour la difference entre classe abstraite et interface, c'est assez simple. En .Net, une classe ne peut deriver que d'une seule autre (classe) alors qu'elle peut implementer autant d'interface qu'elle le souhaite. Ce mecanisme permet justement de compenser le manque d'heritage multiple.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Par défaut
    si je veux construire une bibliothèque graphique (ou autre) c'est des classes abstraites qu'il faut utiliser ou juste des classes (non abstraites), et à quel moment introduire les interfaces?

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Essaye le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     
    public interface IControl {
       string Name { get; }
    }
     
    public class Control1 : IControl {
       public string Name { get { return "Control 1"; } }
    }
     
    public class Control2 : IControl {
       public string Name { get { return "Control 2"; } }
    }
     
    public class Control3 : IControl {
      // erreur de compilation car Control3 n'implémente pas Name { get; }
    }
     
    public abstract AControl {
       private string name = "";
       public string Name { get { return name; } }
    }
     
    public abstract Control4 : AControl {
       public Control4() {
          name = "Control 4";
       }
    }
     
    public abstract Control5 : AControl {
       public Control5() {
          name = "Control 5";
       }
    }
     
    public class Controls {
       public void Add(IControl control) { }
       public void Add(AControl control) { }
    }
     
    public class Program {
       public static void Main(string[] args) {
          Controls controls = new Controls();
          Control1 control1 = new Control1();
          IControl  control2 = new Control2(); // OK
          controls.Add(control1); // OK
          controls.Add(control2); // OK
          AControl acontrol = new AControl() // erreur de compilation
          Control4 control4 = new Control4();
          AControl control5 = new Control5(); // erreur de compilation
          controls.Add(control4); // erreur de compilation
       }
    }

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 232
    Par défaut
    Je vais tester ce code, je crois que créer une bibliothèque est un but et aussi un la meilleur des façons pour maitriser la technique .

    merci à tous

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Citation Envoyé par SirJulio Voir le message
    Ce mecanisme permet justement de compenser le manque d'heritage multiple.
    Je n'appellerais pas cela un manque, vu que c'est recherché

  7. #7
    Membre éclairé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Par défaut
    Moi, ça me manque, l'héritage multiple... J'arrive du C++, et les interface, ça remplace pas ;o)P C'est une autre mécanique, avec son interêt toutefois : c'est une sorte de contrat pour garantir qu'une classe implémente des membres...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. différence entre interface et classe abstraite
    Par yacin87 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 29/03/2010, 11h36
  2. différence entre interface comparable et comparator ?
    Par Mr-Mobou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 12/11/2009, 15h10
  3. [C#] Diffèrence entre les structures et les classes
    Par Kr00pS dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/08/2006, 12h42
  4. [VB] Différence entre "Module" et "Module de Classe"?
    Par gootsu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/06/2006, 16h26
  5. Réponses: 11
    Dernier message: 31/01/2005, 17h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo