Demande explications classes interfaces
Salut tout le monde !
J'ai fait du java en licence il y a un an de ca, et la je decide de m'y remettre ...
Ca se passe a peu pres bien, mais alors ya un truc dont je comprenais deja pas l'interet en licence, et je comprends pas mieux maintenant ... c les interfaces ...
Dans mon cours, j'ai lu que ca pouvait remplacer l'heritage multiple impossible en java ...
Il est aussi dit ceci
Surtout, les interfaces servent à créer des comportements génériques: si plusieurs classes doivent obéir à un comportement particulier, on créé une interface décrivant ce comportement, on est la fait implémenter par les classes qui en ont besoin
Bon je veux bien.
Voici l'exemple de mon cours :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
public interface Animal
{
// tous les animaux doivent implémenter les méthodes suivantes
void manger(String nourriture);
void seDeplacer();
void respirer();
}
public interface Parler
{
// une interface plus spécifique
void parle(int phrase);
}
public interface Aboyer
{
void aboie();
}
public class Homme implements Animal, Parler
{
//implémentations de l'interface Animal
public void manger(String nourriture)
{
System.out.println("Miam, " +nourriture+ "!");
}
public void seDeplacer()
{
System.out.println("déplacement de l'homme");
}
public void respirer()
{
System.out.println("respiration de l'homme");
}
//implémentations de l'interface Parler
public void parle(int phrase)
{
System.out.println(phrase);
}
}
public class Chien implements Animal, Aboyer
{
//implémentations de l'interface Animal
public void manger(String patee)
{
System.out.println("Miam, " +patee+ "!");
}
public void seDeplacer()
{
System.out.println("déplacement du chien");
}
public void respirer()
{
System.out.println("respiration du chien");
}
//implémentations de l'interface Aboyer
public void aboie()
{
System.out.println("Ouaf!");
}
} |
Voila, c la que je cale pas l'interet, ya aucun heritage puisqu'on est obligé de redefinir les methodes pour chaque classe ... on enleve la classe interface, ca fait exactement le meme chose ...
Le seul petit but, c qu'on fait un regroupement des fonctions utilisées ....
Bref, si vous avez de meilleurs explications, elles sont les bienvenues, car la je pense pour le moment que j'utiliserai jamais les interfaces ...
Merci bien !
@+.
;)