cours/java.md
Oscar Plaisant 62f0313af1 update
2024-09-20 21:31:23 +02:00

72 lines
1.3 KiB
Markdown

up::[[langage de programmation]]
title::"[[paradigme programmation orientée objet|OOP]], haut niveau"
#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 */
}
}
```