Bon je comprend de mieux en mieux.
Mais dit moi, es-ce équivalent à mon code ci-bas?
public abstract class Piece {
private String nom;
private String couleur;
public Piece (String nom, String couleur)
{
setNom(nom);
setCouleur ( couleur );
}
public String getNom ()
{
return nom;
}
public void setNom (String nom)
{
this.nom = nom;
}
public String getCouleur ()
{
return couleur;
}
public void setCouleur ( String couleur )
{
if (( couleur == "noir" ) || ( couleur == "blanc" ))
this.couleur = couleur;
}
public abstract boolean estValide (Position depart, Position arrivee);
}
Puis exemple de la définition du roi
public class Roi extends Piece
{
public Roi(String nom, String couleur)
{
super(nom, couleur);
}
public boolean estValide (Position depart, Position arrivee)
{
// Méthode norme calcul la différence en deux nombres
if(norme (depart, arrivee) <= 2)
return true;
else
return false;
}
}
ou celui du fou
public class Fou extends Piece
{
public Fou(String nom, String couleur)
{
super(nom, couleur);
}
public boolean estValide (Position depart, Position arrivee)
{
if(Math.abs(depart.getLigne() - arrivee.getLigne()) ==
Math.abs(depart.getColonne() - arrivee.getColonne()))
return true;
else
return false;
}
}
Chacune des pièces est crée en redéfinisant la méthode estValide qui est abstract dans piece.
La seule déférence a mes yeux c'est que dans un métode de type interface toute les méthodes sont abstraite, moi je n'ai qu'une.
De la foncon que c'est implémenté il y a t'il une différence? Es-ce que changer un pion en une autre pièce représente une difficulté dans mon implémentation?
Cire