class
struct
class abstract
/ sealed
class static
Des chercheurs danois et suédois en sciences informatiques et systèmes autonomes ont décortiqué la sécurité...
Nvidia se prépare à livrer la plate-forme serveur HGX-2 qui sera capable d'exploiter la puissance de 16 GPU Tesla V100...
L'EMD, une école de commerce située à Marseille ouvre à la prochaine rentrée l'école du numérique...
C
est dérivée de la classe B
et la classe B
dérivée de la classe A
,
la classe C
hérite des membres déclarés dans la classe B
et la classe A
.Animal
, vous pouvez avoir une classe dérivée nommée Mammal
et une autre classe dérivée nommée Reptile
.
Un Mammal
est un Animal
, et un Reptile
est un Animal
, mais chaque classe dérivée représente des spécialisations différentes de la classe de base.WorkItem
qui représente un élément de travail dans un processus métier.
Comme toutes les classes, elle dérive de System.Object
et hérite de toutes ses méthodes. WorkItem
ajoute cinq de ses propres membres.
Cela inclut un constructeur, parce que les constructeurs ne sont pas hérités. La classe ChangeRequest
hérite de WorkItem
et représente un type particulier d'élément de travail.
ChangeRequest
ajoute deux membres supplémentaires aux membres qu'elle hérite de WorkItem
et de Object
. Elle doit ajouter son propre constructeur et ajoute également originalItemID
.
La propriété originalItemID
permet à l'instance ChangeRequest
d'être associée au WorkItem
d'origine auquel s'applique la demande de modification.WorkItem
substitue la méthode virtuelle Object.ToString
,
et comment la classe ChangeRequest
hérite de l'implémentation WorkItem
de la méthode.virtual
, une classe dérivée peut substituer la méthode avec sa propre implémentation.
Si une classe de base déclare un membre comme étant abstract
, la méthode doit être substituée dans toutes les classes non abstraites qui héritent directement de cette classe.
Si une classe dérivée est abstract
, elle hérite des membres abstract
sans les implémenter.
Les membres virtual
et abstract
sont la base du polymorphisme, qui est la deuxième caractéristique principale de la programmation orientée objet. abstract
si vous voulez empêcher l'instanciation directe à l'aide du mot clé new
.
Si vous procédez ainsi, la classe ne peut être utilisée que si une nouvelle classe en est dérivée.
Une classe abstract
peut contenir une ou plusieurs signatures de méthode qui sont également déclarées comme abstract
.
Ces signatures spécifient les paramètres et la valeur de retour, mais n'ont aucune implémentation (corps de méthode).
Une classe abstract
ne doit pas nécessairement contenir des membres abstract
.
Toutefois, si une classe contient un membre abstract
, elle doit être déclarée comme abstract
.
Les classes dérivées qui ne sont pas abstract
doivent fournir une implémentation pour toutes les méthodes abstract
d'une classe de base abstract
. interface
est un type référence similaire à une classe de base abstract
qui se compose uniquement de membres abstract
.
Quand une classe implémente une interface
, elle doit fournir une implémentation pour tous les membres de l'interface
.
Une classe peut implémenter plusieurs interface
, même si elle ne peut dériver que d'une seule classe de base directe.interface
sont utilisées pour définir des fonctions spécifiques pour les classes qui n'ont pas nécessairement de relation de type "est un".
Par exemple, l'interface System.IEquatable‹T›
peut être implémentée par toute class
ou tout struct
qui doit permettre au code client de
déterminer si deux objets du type sont équivalents (toutefois, le type définit l'équivalence). IEquatable‹T›
n'implique pas le même type de
relation "est un" qui existe entre une class
de base et une class
dérivée (par exemple, un Mammal
est un Animal
).sealed
.new
peut être utilisé pour indiquer explicitement que le membre n'est pas censé substituer le membre de base.
L'utilisation du modificateur new
n'est pas obligatoire. Toutefois, un avertissement du compilateur est généré si new
n'est pas utilisé.