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.
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.
Le polymorphisme est un mécanisme « runtime », qui sert à l'exécution. Pourquoi utiliser le polymorphisme ? Le polymorphisme permet de ne pas connaître exactement le type de l'objet que l'on manipule pour écrire le code d'appel (envoyer un message).
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 .
L'héritage est un mécanisme permettant de créer une nouvelle classe à partir d'une classe existante en lui proférant ses propriétés et ses méthodes. Ainsi, pour définir une nouvelle classe, il suffit de la faire hériter d'une classe existante et de lui ajouter de nouvelles propriétés/méthodes.
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.
Langage Java
Son but était de pallier une déficience des langages de programmation en produisant un langage conçu pour des machines et des logiciels hétérogènes.
L'abstraction est l'un des concepts clés dans les langages de programmation orientée objet (POO). Son objectif principal est de gérer la complexité en masquant les détails inutiles à l'utilisateur.
Le mot clé static en Java est un modificateur utilisé pour économiser l'espace mémoire. Cela aide à gérer la mémoire occupée par les objets, les variables et les définitions de méthodes. Le mot-clé static garantit qu'une seule instance d'une méthode d'objet ou d'une variable concernée est créée en mémoire.
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.
Dans la programmation orienté objet, le polymorphisme est utilisé en relation avec les fonctions, les méthodes et les opérateurs. Des fonctions et des méthodes de mêmes noms peuvent avoir des comportements différents ou effectuer des opérations sur des données de types différents.
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.
Pour appeler le constructeur d'une classe, il suffit de préciser la valeur de ses paramètres effectifs dans l'instruction d'instanciation. Par exemple, pour créer une nouvelle voiture d'immatriculation "4017 ZX 67" avec le constructeur défini précédement, on pourra écrire: LaVoiture = new Voiture ("4017 ZX 67");
une classe est abstraite si elle contient au moins une méthode abstraite ; elle ne peut pas être instanciée, mais ses sous-classes non abstraites le peuvent. une classe abstarite est déclarée avec le modificateur abstract. une classe est abstraite ne peut être instanciée.
L'encapsulation permet de définir des niveaux de visibilité des éléments de la classe. Ces niveaux de visibilité définissent ce qu'on appelle la portée (ou encore le périmètre) de la l'attribut/méthode. La portée est ainsi définie par méthode et par attribut et indique les droits à leur accès.
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.
Cette liaison dynamique autorise Java à réaliser un polymorphisme complet : le comportement d'un objet dépend de son type réel, plutôt que du type de la variable faisant référence à cet objet. En clair : Java utilise le typage dynamique d'un objet pour déterminer la méthode à appeler, au moment de l'exécution.
Une méthode de classe ou une méthode statique est une méthode qui n'agit pas sur des variables d'instance mais uniquement sur des variables de classe.
En programmation orientée objet, une variable d'instance est une variable contenant l'état d'un objet, aussi appelée attribut. Une variable d'instance précise l'état d'un objet auquel elle se réfère.
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é.
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.
Une sous-classe d'une classe abstraite sera encore abstraite si elle ne définit pas toutes les méthodes abstraites dont elle hérite. Les classes abstraites sont très utiles pour définir des méthodes dépendant d'autres méthodes qui ne sont pas précisées.
Java est un langage de programmation OOP (Object Oriented Programming) tandis que JavaScript est un langage de script OOP. Java permet de créer des applications qui sont exécutées sur une machine ou un navigateur virtuel tandis que le code JavaScript est exécuté uniquement sur un navigateur.
Moins d'1 % d'écart entre C, Java et Python
Bien que C (11,62 %) conserve toujours sa première place devant Java (11,17 %), Python (10,95 %) se rapproche dangereusement.