« Programmation Java/Polymorphisme » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
code java ; découpage en sections
Ligne 3 :
Le polymorphisme veut dire que le même service, aussi appelé opération ou méthode, peut avoir un comportement différent selon les situations.
 
*== Polymorphisme paramétrable (par surcharge de méthodes), les signatures (type et arguments)== divergent.
 
On peut donner à une même méthode, plusieurs signatures pour implémenter des comportements différents selon les types des paramètres passés.
 
<source lang="java">
public class A {
 
private int a;
 
public A() { //constructeur 1
System.out.println("Création de A");
}
 
public A(int a) { //constructeur 2 par surcharge
this.a = a;
}
 
public int getter() {
return this.a;
}
 
public void setter(int a) {
this.a = a;
}
 
public static void main(String[] args) {
A premiera = new A(); //construction par 1
A seconda = new A(1); //construction par 2
}
 
}
</source>
 
*== Polymorphisme d'héritage (par redéfinition de méthodes dans une sous-classe)==
 
En redéfinissant une méthode dans une sous-classe, on peut spécialiser le comportement d'une méthode.
 
<source lang="java">
public class B extends A {
 
private int b;
 
public B() {
super();
System.out.println('Création de B');
}
public B(int a, int b){
super(a);
this.b = b;
System.out.println('Création de B');
}
 
public int getter() {
return this.b;
}
 
public int getter() {
return this.b;
}
 
public void setter(int a, int b) {
super.setter(a);
this.b=b;
}
 
public static void main(String[] args) {
B ob1 = new B(10,20);
((A) ob1).getter(); // Parpar type castingtrans-typage, appel de methodela méthode getter de la classe B
}
 
}