72 lines
1.3 KiB
Markdown
72 lines
1.3 KiB
Markdown
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 */
|
|
}
|
|
}
|
|
```
|
|
|