La surcharge d'une méthode ou d'un constructeur permet de définir plusieurs fois une même méthode/constructeur avec des arguments différents. Le compilateur choisit la méthode qui doit être appelée en fonction du nombre et du type des arguments .
La surcharge de fonction (également connue sous le nom de surdéfinition, polymorphisme ad hoc ou overloading en anglais) est une possibilité offerte par certains langages de programmation de définir plusieurs fonctions ou méthodes de même nom, mais qui diffèrent par le nombre ou le type des paramètres effectifs.
La surcharge survient lorsque deux méthodes ou plus dans une classe ont le même nom de méthode mais des paramètres différents. Redéfinition signifie avoir deux méthodes avec le même nom et les mêmes paramètres, l'une des méthodes est dans la classe parente et l'autre dans la classe fille.
Le polymorphisme est un mécanisme important dans la programmation objet. Il permet de modifier le comportement d'une classe fille par rapport à sa classe mère. Le polymorphisme permet d'utiliser l'héritage comme un mécanisme d'extension en adaptant le comportement des objets.
L'encapsulation permet de définir des niveaux de visibilité des éléments de la classe. Ces niveaux de visibilité définissent les droits d'accès aux données selon que l'on y accède par une méthode de la classe elle-même, d'une classe héritière, ou bien d'une classe quelconque.
L'abstraction est le processus qui consiste à représenter des objets qui appartiennent au monde réel dans le monde du programme que l'on écrit. Il consiste essentiellement à extraire des variables pertinentes, attachées aux objets que l'on souhaite manipuler, et à les placer dans un modèle informatique convenable.
Définition du polymorphisme
Le nom de polymorphisme vient du grec et signifie qui peut prendre plusieurs formes. Cette caractéristique est un des concepts essentiels de la programmation orientée objet. Alors que l'héritage concerne les classes (et leur hiérarchie), le polymorphisme est relatif aux méthodes des objets.
Nom commun
Action de changer, de reformuler une définition. (Spécialement) (Programmation orientée objet) Écrasement d'une méthode d'une classe dans une de ses instances.
La notion d'héritage
L'héritage (en anglais inheritance) est un principe propre à la programmation orientée objet, permettant de créer une nouvelle classe à partir d'une classe existante.
Classes abtraites et interfaces ont chacune une fonction bien distincte : les classes abstraites servent à factoriser du code, tandis que les interfaces servent à définir des contrats de service.
la signature d'une méthode est constituée du nom de la méthode, du nombre et du type de ses paramètres, et du type qu'elle renvoie.
En Java, l'héritage est indiqué par le mot clé extends après le nom de la classe. On dit donc qu'une classe en étend une autre. La classe qui est étendue est appelée classe mère ou classe parente et la classe qui étend est appelée classe fille ou classe enfant.
Un constructeur de copie est une fonction membre qui initialise un objet en utilisant un autre objet de la même classe. Un constructeur de copie a le prototype suivant: ClassName (const ClassName &obj); ClassName (const ClassName &obj);
La fonction OU est couramment utilisée pour développer l'utilité d'autres fonctions qui effectuent des tests logiques. Par exemple, la fonction SI effectue un test logique, puis renvoie une valeur si le résultat du test est VRAI, et une autre valeur si le résultat du test est FAUX.
Cela signifie que C++ a la capacité de donner aux opérateurs une signification particulière pour un type de données. Cette capacité est appelée surcharge d'opérateur. Par exemple, nous pouvons surcharger l'opérateur « + » dans une classe telle que String afin de concaténer deux chaînes en utilisant simplement +.
Quand la surcharge de méthode est-elle déterminée? La surcharge est déterminée au moment de la compilation.
La surcharge d'une méthode ou d'un constructeur permet de définir plusieurs fois une même méthode/constructeur avec des arguments différents. Le compilateur choisit la méthode qui doit être appelée en fonction du nombre et du type des arguments .
En Programmation Orientée Object (POO), la généricité est un concept permettant de définir des algorithmes (types de données et méthodes) identiques qui peuvent être utilisés sur de multiples types de données. Cela permet donc de réduire les quantités de codes à produire.
Formellement une classe abstraite n'est pas différente d'une classe normale. Simplement, elle est déclarée en ajoutant le mot-clé abstract , comme dans l'exemple suivant. On peut déclarer autant de méthodes abstraites que l'on veut dans une classe abstraite, y compris ne pas en déclarer du tout.
La programmation orientée objet obéit à des principes. Les 4 principaux principes sont l'encapsulation, l'héritage, le polymorphisme et la généricité.
L'intérêt principal de définir une classe comme abstraite va être justement de fournir un cadre plus strict lorsqu'ils vont utiliser notre code en les forçant à définir certaines méthodes et etc. En effet, une classe abstraite ne peut pas être instanciée directement et contient généralement des méthodes abstraites.
En toute logique, Homme et Femme sont instanciables (les objets créés ont une existence en soi), mais la classe Humain sera déclarée abstraite car un objet Humain n'existe pas en tant que tel, puisqu'il manque l'information sur le sexe.
Lors d'une encapsulation, la couche la plus abstraite est appelée 'couche protocole de plus haut niveau' (Upper Layer Protocol - ULP) alors que la couche la plus spécifique est appelée 'couche protocole de plus bas niveau' (Lower Layer Protocol - LLP).
Lorsque le paquet parcourt la pile de protocoles TCP/IP, les protocoles de chaque couche ajoutent ou suppriment des champs de l'en-tête de base. Lorsqu'un protocole sur le système émetteur ajoute des données à l'en-tête du paquet, le processus s'appelle encapsulation de données.