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

Dotnet Discussion :

methode abstraite vs methode virtual dans classe abstraite


Sujet :

Dotnet

  1. #1
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Points : 345
    Points
    345
    Par défaut methode abstraite vs methode virtual dans classe abstraite
    Bonjour,
    dan une classe abstraite, quelle est l'interet que ma méthode "mamethode" soit virtual plutot que abstract et inversement ?
    Avez vous des cas de figure illustratifs ?

    je sais juste qu'une methode abstraite doit être obligatoirement overridée dans la classe fille alors qu'une méthode virtual peut être overridée sans être obligée dans la classe fille.

    Merci d'avance

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Tu utilises une méthode virtuelle si ta classe a une implémentation "par défaut" de la méthode.
    Tu utilises une méthode abstract si tu ne peux pas implémenter la méthode à ce niveau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    abstract class ShapesClass
    {
        abstract public int Area();
    }
    class Square : ShapesClass
    {
        int x, y;
        public override int Area()
        {
            return x * y;
        }
    }
    On ne peut pas implémenter la méthode Area dans la classe mère car cela dépend de la forme => abstract.

    Si tu prends le cas de la méthode GetHashCode, il y a une implémentation par défaut mais nécessite parfois de spécialiser le calcul => virtual

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

Discussions similaires

  1. Classe abstraite et methode static de factory
    Par Troopers dans le forum Débuter
    Réponses: 11
    Dernier message: 28/07/2011, 09h40
  2. Réponses: 15
    Dernier message: 05/07/2007, 02h29
  3. [POO] classe abstraite sans methode
    Par ZaaN dans le forum C++
    Réponses: 7
    Dernier message: 01/05/2007, 20h21
  4. OnInitDialog() dans classe abstraite
    Par rigobert dans le forum MFC
    Réponses: 5
    Dernier message: 09/08/2006, 11h52
  5. [POO] class abstraite et methode magic
    Par jeff_! dans le forum Langage
    Réponses: 14
    Dernier message: 25/01/2006, 00h19

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