En programmation orientée objet (POO), une classe abstraite est une classe si et seulement si elle n'est pas instanciable. Elle sert de base à d'autres classes dérivées (héritées).
Le mécanisme des classes abstraites permet de définir des comportements (méthodes) dont l'implémentation (le code dans la méthode) se fait dans les classes filles. Ainsi, on a l'assurance que les classes filles respecteront le contrat défini par la classe mère abstraite. Ce contrat est une interface de programmation.
Prenons l'exemple suivant :
vous avez une classe Humain, à partir de laquelle dérivent la classe Homme et la classe Femme.
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.
Ici, la classe Humain servira à implémenter des méthodes qui seront utilisées à la fois pour Homme et pour Femme.
Dans les diagrammes de classe, les classes abstraites ont leur nom écrit en italique.
En Java, en C#, en TypeScript et en PHP, le mot clef définissant une classe abstraite est : abstract.
En C++, une classe est abstraite si elle contient au moins une méthode déclarée virtuelle pure, c'est-à-dire commençant par virtual et terminée par = 0. Ce type de classe n'est pas instanciable. On peut néanmoins créer des pointeurs ou des références du type de la classe abstraite qui pointeront ou référenceront des objets d'une classe dérivée non abstraite. Une fonction virtuelle pure doit être définie ou redéclarée explicitement virtuelle pure.
En Pascal les mots clefs abstract ou virtual (les deux existent et sont identiques) sont utilisés dans la déclaration du type classe en fin de ligne afin de préciser quelles seront les méthodes virtuelles ou abstraites (par exemple : function Addition(A, B: integer): integer; abstract;).
En Visual basic .Net, une classe est abstraite si elle est précédée de la déclaration MustInherit.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique. Elle consiste en la définition et l'interaction de briques logicielles appelées objets ; un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre. Il possède une structure interne et un comportement, et il sait interagir avec ses pairs.
Un trait est une sous-classe abstraite, un modèle conceptuel pour structurer des programmes orientés objets. C'est un ensemble de méthodes concrètes ou fonctions, pouvant être ajouté à une classe pour étendre ses fonctionnalités. Quand un langage de programmation supporte les traits, il permet la résolution explicite des conflits qui apparaissent quand une classe utilise deux traits qui ont des méthodes qui portent le même nom (contrairement aux mixins).
Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage dynamique qui permet de compiler pour la machine virtuelle Java, JavaScript, et vers plusieurs plateformes en natif (grâce à LLVM). Son développement provient principalement d'une équipe de programmeurs chez JetBrains basée à Saint-Pétersbourg en Russie (son nom vient de l'île de Kotline, près de St. Pétersbourg). Google annonce pendant la conférence Google I/O 2017 que Kotlin devient le second langage de programmation officiellement pris en charge par Android après Java.
This seminar teaches the participants to use advanced Python concepts for writing easier to read, more flexible and faster code.
It teaches concepts in a hands-on and tangible fashion, providing examp
The aim of this course is to provide the background in scientific computing. The class includes a brief introduction to basic programming in c++, it then focus on object oriented programming and c++ s
We teach the fundamental aspects of analyzing and interpreting computer languages, including the techniques to build compilers. You will build a working compiler from an elegant functional language in
The purpose of this MOOC is to offer a complementary capstone project to our existing MOOCs in introduction to programming. This will offer the students the possibility to both stabilize the already a
Le cours suivi propose une introduction aux concepts de base de la programmation orientée objet tels que : encapsulation et abstraction, classes/objets, attributs/méthodes, héritage, polymorphisme, ..
Couvre l'héritage, le polymorphisme et le casting dans la programmation orientée objet, en mettant l'accent sur la factorisation du code et la manipulation générique d'objets.
Beyond monastic tradition, rules, statutes, and codes regulating conduct and behaviors gave origin to university colleges and the figure of the student. Since Middle Ages, plans on education were brought by reformers, moralists, and educators of different ...
The rise of university colleges, like that in Paris and Oxford, and their territorial spread in scholastic Europe from the 13th century, the investment of patrons in building the so-called sapienza, and the hegemony of the Jesuit’s educational project, are ...
2023
, ,
Pattern matching enables inspecting algebraic data types, but typically prevents hiding the implementation of the matched algebraic data type. In Scala, instead, extractors also allow pattern matching on non-algebraic data types and invoking methods on the ...