Classe abstraite

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 467 fois - Téléchargée 30 fois

Contenu du snippet

Le mot clé abstract sert à définir une méthode dans une classe qui sera obligatoirement implémentée dans une sous-classe (qui hérite de cette classe), sauf si cette classe est elle mème abstraite.
De plus, il est impossible d'instancier une classe abstraite.

Source / Exemple :


using System;

class ClassePrincipale : Object
{
   public static void Main()
   {
      ClasseTest test=new ClasseTest();
      test.Méthode2();
   }
}

/*

    • Une classe qui possède une méthode abstraite doit elle mème
    • être déclarée abstraite.
  • /
abstract class ClasseAbstraite { public void Méthode1() { } public abstract void Méthode2(); /*
    • Une sous-classe de "ClasseAbstraite" doit implémenter une
    • méthode "Méthode2", sans arguments et sans valeur de retour.
  • /
} class ClasseTest : ClasseAbstraite { public override void Méthode2() //override sert à indiquer une redéfinition de méthode. { Console.Out.WriteLine("Méthode2."); } }

Conclusion :


Si vous voulez qu'une sous classe implémente des méthodes sans d'autres membres(des variables,des constantes ...), utilisez les interfaces.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
17
oui je sais , c'est pour çà que je disait que c'etait un bon compromis :)
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
erf, oui les propriétés ... je faisais références aux variables ou constantes ...
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
17
Enfin vous ni tort ni raison , mais les attributs sont des bon comprimis pour declarer des "champs" dans des interfaces.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
17
malheuresement elle peut :)
C'est bien là le truc cool :)
ces champs s'apellent des attributs :
exemple :
(dans l'interface)
IScenario Owner{get;set;}
(dans la classe qui l'implemente)
public IScenario Owner
{
get{return _owner;}
set{_owner=value;}
}

avec un champs :
private IScenario _owner;

Un attribut a besoin d'un champs :) mais un attribut peut etre definit dans une interface.
Messages postés
656
Date d'inscription
mercredi 22 août 2001
Statut
Membre
Dernière intervention
11 mars 2005
13
une interface ne peut en aucun cas contenir de champs, c'est bien la le problème
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.