« POO » : différence entre les versions
(Une version intermédiaire par le même utilisateur non affichée) | |||
Ligne 69 : | Ligne 69 : | ||
= Overriding = | = Overriding = | ||
Child class overrides method defined in parent class. | Child class overrides method defined in parent class. | ||
<kode lang='cs'> | |||
class Parent | |||
{ | |||
public abstract Item GetItem(int id); | |||
} | |||
class Child : Parent | |||
{ | |||
public override Item GetItem(int id) { } | |||
} | |||
</kode> |
Dernière version du 2 octobre 2020 à 15:14
Liens
- SOLID, les 5 premiers principes de la programmation orientée objet.
- Abstract
- Modificateurs d'accès
Intérêt
La modélisation orientée objet reste proche de la réalité, donc plus facile à comprendre notamment pour les personnes non-techniques.
Le découpage en classes facilite la maintenance.
Réutilisabilité.
Les 3 piliers de la POO:
|
Objet
C'est un élément concret, réel qui correspond à la définition de sa classe. Un objet est aussi appelé instance de classe.
Classe
C'est la définition, la description d'un objet, de ses caractéristiques:
- Propriétés ou Attributs
- Actions ou Méthodes
Encapsulation
Permet de masquer le fonctionnement interne de l'objet afin de contrôler l'accès aux données.
- Contrôler l’accès aux données
- Séparer l'implémentation de l'interface
Héritage
Permet de définir une classe à partir d'une classe «parente» tout en spécialisant les éléments de sa définition.
Interface
Représente une définition, une description de comportements (méthodes).
Une classe peut implémenter (équivalent de l'héritage pour les interfaces) une ou plusieurs interfaces.
Il n'est pas possible de construire un objet à partir d'une interface.
Polymorphisme
Substitution / Dynamic Polymorphism / Runtime Polymorphism / Overriding
Mécanisme de substitution d'une méthode d'une classe «parente».
class Parent { public virtual void Method() { /* code */ } } class Fils : Parent { public override void Method() { /* code */ } } Parent parent = new Fils(); // substitution de Method de la classe Parent pour celle de la classe Fils parent.Method(); |
Polymorphisme ad hoc / Static Polymorphism / Compile time Polymorphism / Overloading
C'est l'autre nom de la surcharge de méthode (overload en anglais).
Le compilateur choisit la méthode à utiliser en fonction du type des paramètres.
public int Addition(int a, int b) { /* code */ } public int Addition(int a, int b, int c) { /* code */ } public double Addition(double a, double b) { /* code */ } |
Overloading
Having multiple methods with the same name but different signatures.
Item GetItem(int id); Item GetItem(string name); |
Overriding
Child class overrides method defined in parent class.
class Parent { public abstract Item GetItem(int id); } class Child : Parent { public override Item GetItem(int id) { } } |