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:
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;
	}
}
Je n'ai pas d'erreur à la compilation mais une à l'exécution:
"Animal cannot be cast to Oiseau"
Pourtant je trouve normal de pouvoir caster ani en Oiseau pour pouvoir faire pointer ois dessus, non?