Bonjour à tous. Je suis en train de redéfinir la méthode equals d'un objet :
je ne comprends pas pourquoi lorsque je retire cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public boolean equals(Object obj) { if (this == obj) return true; if (getClass() != obj.getClass()) return false; Ville other = (Ville) obj; return Objects.equals(other.getCategorie(), this.getCategorie()) && Objects.equals(other.getNom(), this.getNom()) && Objects.equals(other.getNombreHabitants(), this.getNombreHabitants()) && Objects.equals(other.getNomPays(), this.getNomPays()); }
Mon IDE m'engueule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Ville other = (Ville) obj;
En effet, pourquoi est-ce que je ne peux pas utiliser obj et appeler les méthodes de la classe Ville avec, pourquoi est-ce que je suis obliger de transtyper, alors qu'à ce stade des tests, je suis sur qu'obj pointe vers un objet de type Ville?
J'aimerai comprendre quel est la différence entre une variable de type Object qui pointe vers un objet Ville, et une variable de type Ville qui pointe vers un objet Ville.
Merci à vous
Partager