héritage et constructeurs
Citation:
Envoyé par
Hizin
Quand tu construits une classe sans appel explicite envers un constructeur de la classe mère, il y en a appel implicite au constructeur "par défaut" (comprendre : "sans argument") de la classe mère.
Ce constructeur est présent implicitement dans ta classe "Vertebrate".
En suivant tes explications, je ne comprends pas ce qui se passe; si je retire la classe Canine, et que je fais un appel de la forme
Code:
Mammal chien = new Mammal();
on est dans la situation où la classe fille (Mammal) n'a pas un tel constructeur, et devrait donc faire appel au constructeur implicite de la classe mère (Vertebrate). Or j'ai ce message:
Code:
1 2 3 4 5 6 7 8
| H:\tmp>d:\users\jikes\bin\jikes.exe test.java
Found 1 semantic error compiling "H:/tmp/test.java":
3. Mammal chien = new Mammal();
^----------^
*** Semantic Error: No applicable overload was found for a constructor with signature "Mammal()" in type "Mammal".
Perhaps you wanted the overloaded version "Mammal(java.lang.String name);" instead? |