Interface polymorphisme apprendre
Bonjour à tous !
Pour apprendre Java je suis entrain d'essayer de comprendre la notion de polymorphisme en Java et de la mettre en œuvre. Si j'ai bien compris les choses ... le polymorphisme peut être généré par le biais de l'héritage , des interfaces, ou de leurs utilisations cumulées ...
J'ai donc crée une interface nommée Véhicule avec des méthodes rouler et freiner qu'il faut définir lorsque l'on souhaite les utiliser. La classe Auto implémente l'interface Vehicule. La classe Velo implémente elle aussi l'interface Véhicule.
En théorie, je devrais pouvoir ainsi disposer de comportements différents pour chaque objet ... mais je coince sur la partie Lanceur qui comprend la méthode Main et je ne parviens pas à trouver la bonne syntaxe.
Je vous remercie pour vos conseils et vos idées.
Jean-Marc
Code:
1 2 3
| public interface Vehicule {
public void rouler();
public void freiner(); |
Code:
1 2 3 4 5 6 7 8 9
| public class Auto implements Vehicule {
public Auto(Vehicule a)
System.out.println("Je suis une auto");
}
public void rouler(){System.out.println("Je suis une auto je roule vite");}
public void freiner(){System.out.println("Je suis une auto je freine fort");}
} |
Code:
1 2 3 4 5 6 7 8
| public class Velo implements Vehicule {
public Velo(Vehicule v) {
System.out.println("Je suis un vélo");
}
public void rouler(){System.out.println("Je suis un velo je roule doucement");}
public void freiner(){System.out.println("Je suis velo je freine lentement");}
} |
Code:
1 2 3 4 5 6 7
| public class Lanceur {
public static void main ( String args[]){
// Auto a= new Vehicule (new Auto());
// Velo v=new Vehicule(new Velo());
}
} |
Interface polymorphisme apprentissage
OUI effectivement comme j'avais commenté les deux lignes me posant soucis ...
en fait ce sont les deux lignes suivantes qui me posent soucis
L'objet Auto devrait disposer en paramètre de l'interface Vehicule a et l'objet Velo
de l'interface véhicule v ... mais je coince sur la syntaxe pour parvenir à mes fins
C'est à dire que l'objet a et l'objet b utilisent les mêmes méthodes mais avec des résultats
distincts
En souhaitant ... que cela soit plus clair
Avec mes remerciements !
Code:
1 2 3 4
|
Auto a= new Vehicule (new Auto());
Velo v=new Vehicule(new Velo()); |
Interface Polymorphisme apprendre
Bonjour à tous Merci pour vos réponses !
Je pensais également que cela n'était pas possible jusqu'à ce que je lise cette article
http://fr.wikibooks.org/wiki/Program...ava/Interfaces .. le contenu de l'article serait il erroné ?:roll:
C'est la partie du code ci dessous qui me pose soucis
Code:
1 2 3 4 5
|
Personne p = new Personne();
p.conduire(new Velo()); //comme la méthode attend un Vehicule en argument, on peut passer tout objet implémentant cette interface.
p.conduire(new Auto()); |