Bonjour à tous.
Pour simplifier, voici mon problème:
J'ai une classe Animal que je ne peux pas modifier, avec une instance "ani".
Je veux ajouter des propriétés à cette classe:
je la dérive en une classe Oiseau qui a la propriété "chante" en plus.
Le but est de créer une instance "ois" de Oiseau qui récupère les propriété de ani (sans avoir à les dupliquer) et qui ajoute le booléen chante:
Je n'ai pas d'erreur à la compilation mais une à l'exécution:
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
17
18
19
20
21
22
23
24 public class Animal { int age; public Animal(int age) { this.age=age; } } public class Oiseau extends Animal { boolean chante=false; public Oiseau(int age,boolean ch) { super(age); chante=ch; } } public class Essai { public static void main(String[] args) { Animal ani=new Animal(5); Oiseau ois=(Oiseau) ani; ois.chante=true; } }
"Animal cannot be cast to Oiseau"
Pourtant je trouve normal de pouvoir caster ani en Oiseau pour pouvoir faire pointer ois dessus, non?
Partager