Questions marquées «abstract-class»

Une classe abstraite est une classe qui ne peut pas être instanciée. Ils sont généralement destinés à être étendus / sous-classes et ont généralement des «méthodes abstraites» qui doivent être implémentées par des sous-classes.

7
Quand utiliser des classes abstraites au lieu d'interfaces avec des méthodes d'extension en C #?
"Classe abstraite" et "interface" sont des concepts similaires, l'interface étant la plus abstraite des deux. Un facteur de différenciation est que les classes abstraites fournissent des implémentations de méthodes pour les classes dérivées lorsque cela est nécessaire. En C #, toutefois, ce facteur de différenciation a été réduit par l’introduction …





3
Ne jamais rendre les membres publics virtuels / abstraits - vraiment?
Dans les années 2000, un de mes collègues m'a dit que c'était un anti-modèle de rendre les méthodes publiques virtuelles ou abstraites. Par exemple, il a considéré une classe comme celle-ci pas bien conçue: public abstract class PublicAbstractOrVirtual { public abstract void Method1(string argument); public virtual void Method2(string argument) { …

5
Les énumérations créent-elles des interfaces fragiles?
Considérez l'exemple ci-dessous. Toute modification de l'énumération ColorChoice affecte toutes les sous-classes IWindowColor. Les énumérations ont-elles tendance à provoquer des interfaces fragiles? Existe-t-il quelque chose de mieux qu'une énumération pour permettre une plus grande flexibilité polymorphe? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { …

2
Super type d'exception abstraite
Si le lancer System.Exceptionest considéré comme si mauvais, pourquoi n'a-t-il pas été Exceptionfait abstracten premier lieu? De cette façon, il ne serait pas possible d'appeler: throw new Exception("Error occurred."); Cela imposerait l'utilisation d'exceptions dérivées pour fournir plus de détails sur l'erreur qui s'est produite. Par exemple, lorsque je veux fournir …






4
Existe-t-il une logique d'utilisation différente pour les classes / interfaces abstraites en C ++ et Java
Selon Herb Sutter, on devrait préférer les interfaces abstraites (toutes les fonctions virtuelles pures) aux classes abstraites en C ++ pour découpler l'implémentation autant que possible. Bien que je trouve personnellement cette règle très utile, j'ai récemment rejoint une équipe avec de nombreux programmeurs Java et dans le code Java, …

7
Quels sont les rôles des singletons, des classes abstraites et des interfaces?
J'étudie la POO en C ++ et, même si je connais les définitions de ces 3 concepts, je ne sais pas vraiment quand ni comment l'utiliser. Utilisons cette classe pour l'exemple: class Person{ private: string name; int age; public: Person(string p1, int p2){this->name=p1; this->age=p2;} ~Person(){} void set_name (string parameter){this->name=parameter;} void …

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.