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 */
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 |