up::[[langage de programmation]] title::"[[paradigme programmation orientée objet|OOP]], haut niveau" #s/informatique > [!query]+ Sous-notes de `$= dv.el("span", "[[" + dv.current().file.name + "]]")` > ```breadcrumbs > title: false > type: tree > dir: down > ``` # OOP voir : [[paradigme programmation orientée objet|OOP]] ## Méthodes ## Héritage ## Polymorphisme > _polymorphisme_, vient du grec > signifie "_peut prendre plusieurs formes_" - basé sur la notion d'[[java#Héritage|héritage]] > [!example] Exemple > ```java > Point p = new Point(); > Object o = p; > o.deplace(3, 4); // ERREUR : deplace n'est pas une méthode de Object > Point p1 = (Point) o; > p1.deplace(3, 4); // OK : conversion de type > ((Point)o).deplace(3, 4); // OK aussi, mais nouvelle référence > ``` > on remarque que `o`, qui est **Exemple :** ```java class Animal {} class Lion extends Animal {} class Tigre extends Animal {} class Ours extends Animal {} public class Essai { public static void main(String args[]) { /* foo est de type Animal */ Animal foo; /* mais sera un objet d'une de ces classes : */ foo = new Lion(); foo = new Tigre(); foo = new Ours(); Lion l; Lion l = new Animal(); /* ⚠️ erreur car incompatibilité de type */ } } ```