Table des matières:
Définition - Que signifie la classe de base - .NET?
Une classe de base, dans le contexte de C #, est une classe qui est utilisée pour créer ou dériver d'autres classes. Les classes dérivées d'une classe de base sont appelées classes enfants, sous-classes ou classes dérivées. Une classe de base n'hérite d'aucune autre classe et est considérée comme le parent d'une classe dérivée.
La classe de base constitue le moyen par lequel l'héritage est accompli par dérivation. Une classe dérivée d'une classe de base hérite à la fois des données et du comportement. Par exemple, véhicule peut être une classe de base à partir de laquelle les classes dérivées voiture et bus peuvent être dérivées. La voiture et le bus sont des véhicules, et ils représentent chacun leurs propres spécialisations de classe de base.
Comme en Java, mais contrairement à C ++, C # ne prend pas en charge plusieurs héritages de classes. C # diffère de Java en marquant explicitement un modificateur virtuel pour tous les membres virtuels.
Une classe de base est également appelée classe parent ou superclasse.
Techopedia explique la classe de base - .NET
La classe de base permet de créer une classe spécialisée qui peut réutiliser le code qui est implicitement obtenu de la classe de base (à l'exception des constructeurs et des destructeurs) et étendre les fonctionnalités de la classe de base en ajoutant ou en remplaçant les membres pertinents pour la classe dérivée dans la classe dérivée. En C #, les événements sont déclarés dans la classe de base qui peut être déclenchée à partir des classes dérivées. Les classes génériques utilisées pour encapsuler des opérations qui ne sont pas spécifiques à un type de données particulier servent de classes de base, fournissant un comportement générique de manière à assurer la flexibilité et la réutilisation du code.
La clé les propriétés de la classe de base en C #:
- Les membres de la classe de base (constructeur, méthode d'instance ou accesseur de propriété d'instance) sont accessibles dans la classe dérivée à l'aide du mot clé "base".
- Les classes de base sont instanciées automatiquement avant les classes dérivées.
- La classe dérivée peut communiquer avec la classe de base pendant l'instanciation en appelant le constructeur de la classe de base avec une liste de paramètres correspondante.
- Les membres de la classe de base sont accessibles à partir de la classe dérivée via une conversion explicite.
- Puisqu'une classe de base elle-même peut être une classe dérivée, une classe peut avoir plusieurs classes de base.
- Les membres d'une classe dérivée peuvent accéder aux membres publics, protégés, internes et internes protégés d'une classe de base.
- En raison de la nature transitive de l'héritage, bien qu'une classe dérivée n'ait qu'une seule classe de base, elle hérite des membres déclarés dans le parent de la classe de base.
- En déclarant une méthode dans la classe de base comme virtuelle, la classe dérivée peut remplacer cette méthode avec sa propre implémentation. La méthode et la propriété redéfinies et redéfinies doivent avoir les mêmes modificateurs de niveau d'accès tels que virtuel, abstrait ou redéfinir.
- Lorsque le mot clé "abstrait" est utilisé pour une méthode, il doit être remplacé dans toute classe non abstraite qui hérite directement de cette classe.
- Les classes de base abstraites sont créées en utilisant le mot-clé "abstract" dans sa déclaration et sont utilisées pour empêcher l'initiation directe en utilisant le mot-clé "new". Ils ne peuvent être utilisés que par le biais de classes dérivées qui implémentent des méthodes abstraites.
- Une classe de base peut empêcher d'autres classes d'en hériter en déclarant tous les membres «scellés».
- Les membres de la classe de base peuvent être masqués dans une classe dérivée en utilisant le mot clé "new" pour indiquer que le membre n'est pas destiné à être un remplacement du membre de base. Si "nouveau" n'est pas utilisé, le compilateur génère un avertissement.
Bien que la classe de base et l'interface puissent être utilisées de manière interchangeable, les classes sont plus flexibles que les interfaces du point de vue du contrôle de version. La classe de base est préférée dans la plupart des cas, sauf dans les scénarios suivants où:
- Plusieurs classes indépendantes forment la base de la classe dérivée
- Les classes ont déjà des classes de base établies
- L'agrégation n'est ni appropriée ni pratique